私はデータを取得しようとしている外部サーバー上のスクリプトを持っています。JSONPコードの試行で何が問題になっていますか?
それはtest.phpを呼ばれるPHPスクリプトだと、それは内部の次ました:
<?php
$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$parts = parse_url($url);
parse_str($parts['query'], $query);
$limit = $query['limit'];
$return_array["result"] = $limit;
echo json_encode($return_array);
?>
それでは、私は、以下のものを使用してそのサーバーにコールを送信します。
/* this is included in head */
<script src="http://some-website.com/get-text/index.php?limit=10&q=returnText"></script>
/* in Body */
<script>
function returnText(data) {
console.log('result: ' + data);
}
</script>
あなたがに行くときそのPHPページだけでは、出力は
{"result":"10"}
ですが、私はJavaScriptコードを持っているファイルを実行すると、らエラー:?
index.phpの上限= 10 & Q = returnText:1キャッチされないでSyntaxError:予期しないトークン:
あなたは、私がこれを見るこのエラー行の右側にあるリンクをクリックしたとき:
{"result":"10"}
コロンから始まり右に行く赤い下線付き。
私は、JSONPが有効になっているかどうかを確認しましたが、実際のサーバー構成などのようには見えませんでした。
私は間違っていますか?
あなたが言っているだけではなくエコーencode_json($配列)「関数呼び出しでJSONをラップ」と言うとき、私はエコー「のfunctionnameような何かをしたいです( '.encode_json($ array);.);;コメントセクションに書式設定されたコードを投稿することをお勧めしません。 –
スクリプト/機能の順番に間違っていたああ、あなたの提案をお試しいただきありがとうございます。 –
aaaahhhhhhhhhhhhhh私はそれを作った!ありがとうございます。少なくとも私はそう思った。私はパラメータに "コールバック"を入れる必要はありませんでした。私は関数名をjson_encode行と連結してエコーしました。これは私があなたに感謝したよりも遠いです。 –