JSONでエンコードされたデータを返すphpファイルを作成して使用しました getJSON
それを読むために。 1つのソースから情報を取得して、複数のエリアに配信しようとしています。 content-typeを変更し、ヘッダーを使用したすべてのアクセスも許可しました。この時点で立ち往生しています。これを機能させる方法はありますか?
PHP
header("Cache-Control: no-cache, must-revalidate");
header("Content-type: application/json");
header("Access-Control-Allow-Origin: *");
$search_terms = curlData();
$json = array("term" => $search_term);
echo $_GET["callback"] . "(" . json_encode($json) . ");";
このphpファイルの出力は次のとおりです。
({"term":"sandwich city"});
json情報を取得するために使用しているjQueryは次のとおりです。
$.getJSON("http://MYWEBSITE.com/terms.php?callback", function(data) {
alert(data);
});
</s></s></s></s></s></s></s></s>
回答:
回答№1は1({"term":"sandwich city"});
有効なJSONPではありません。あなたが欠けています 機能名.
追加 =?
jQueryが応答を処理する関数を自動的に生成するように、URLに追加します。
http://MYWEBSITE.com/terms.php?callback=?
から ドキュメンテーション:
URLに文字列が含まれている場合
"callback=?"
(または、サーバー側APIで定義されている同様の)リクエストは、代わりにJSONPとして扱われます。の議論を参照してくださいjsonp
データ型$.ajax()
詳細については。
ところで、JSONPを応答として送信する場合、応答のコンテンツタイプを application/json
正しくありません。応答は単純にJavaScriptです。
さらに、指定したように Access-Control-Allow-Origin
ヘッダー、JSONPを使用する必要はまったくありません。通常のAJAX呼び出しを行ってJSONを返すことができます。