jsonpはラッパーを持つjsonです。したがって、新しい<script>
タグを動的に挿入して、他のサーバーを指すsrcを使用して、別のサーバーにajaxリクエストを偽装できます。ラッパーは基本的に、jsonpの返すものを、標準のjsonデータを抽出するために実行できる有効なjavascript関数呼び出しにします。
unwrap_json("{'this':'is','sparta':'!'}");
注:リモートサーバーには、次のリテラル文字列を返します
function unwrap_jsonp(data) {
eval(data);
}
:
一般的に、ただデモする「安全でないバージョンでは、あなたはこのような何かを持っていると思いますこれは実行され埋め込まれたJSON文字列をネイティブのjavascriptデータ構造に戻すリバースのJavascriptプレーンテキストコードです。
ほとんどのJSONPサービスでは、クエリ文字列を使用して余分なパラメータを指定して、レスポンスをラップするハンドラ関数に名前を付けることができます。
http://example.com/getjsonp.php?callback=unwrap_json
ありがとうございます! CORSの解決策は私を固定しました。 –
ちょうどdownvoted BCこの答えはPHPを前提としているので、私はT.J.を好む。以下のCrowderの答え。 – Steven2163712
@ Steven2163712タイトルを超えて読むと、OPの問題は言語に関係なく実際にはCORSです。 TJの答えはより一般的ですが(IMO phpは十分に一般的です)、OP問題を解決することはできません。 – soemarko