2012-03-05 10 views
4

私はjsonpを使用しなければならない理由は何ですか?jsonpを使用する理由は何ですか?

数日前、私はjqueryを備えた残りのサーバーからの応答がないのかと尋ねました。 私はJSONPを使用しなければならないという理由がありました。私はそれを自分のサーバーでテストし、それがうまくいった。

これで、出力がJSONではなくJSONPでなければならない適切なサーバーを管理している私の大学を説得しなければなりません。

JSONPを使用する必要があるのはなぜですか?そして、これはjqueryの問題だけですか、それともJavaScriptでは不可能なのでしょうか?

誰でも私にこれらの質問をお手伝いできますか?ありがとう

+3

http://en.wikipedia.org/wiki/Same_origin_policy#Accessaround – j08691

+0

は、同じ起点ポリシーを参照してください。http://en.wikipedia.org/wiki/Same_origin_policy – reedlauber

+1

あなたはプロキシを使用できます。他のAPIがあなたの便宜のために変わることを期待しないでください – charlietfl

答えて

8

JSONPは、AJAXクロスドメインを介してデータを取得するために使用されます。実際、JSONPは実際にはちょっとした "ハック"です。

AJAXリクエストは同じドメインでのみ動作しますが、<script>タグは任意のドメインから含めることができます。これはJSONPであり、実際にはJavascriptファイルで、<script>タグとして追加されます。

JSONPでは、callback({data: value})です。これは実行されるスクリプトです。

+0

それを納得させてくれてありがとう、ありがとう! – robind38

+0

問題ありません。 :-) –

5

Same origin policyと呼ばれるURLに対してAJAXリクエストが行われている場合、ブラウザの制限が組み込まれているため、通常はほとんどのブラウザで失敗します。

しかし、あなたはあなたの大学のサーバーと同じドメインプロトコルポート上にある場合、あなたはは、AJAXリクエストを作るために JSONPを必要としない、あなただけの標準AJAXツールを使用して先に行くことができます。

JSONPは、同じオリジンポリシーを使用する業界標準の手法ですが、サーバーがクライアント用に特別な方法でデータを配信することも必要です。

+0

この回答ありがとうございます!! – robind38

関連する問題