PHPで簡単なAPIを作りました。この API は、json_encode を使用してオブジェクトをエコーします。
例:
echo json_encode($obj);
この API から情報を取得するために jQuery を使用しています。スクリプトと API をテストすると、両方が同じサーバー上で実行されます。そして、すべてがうまくいきました。
jQuery の例:
$.ajax({
url: "php/api/test.php"
dataType: "json",
type: "POST",
succes: function(data) {
console.log("success");
},
error: function(response) {
console.log("error");
}
});
これでうまくいきました。ただし、API が外部サーバーで実行されているため、これは機能しなくなりました (はい、URL を正しいものに変更しました)。
jQuery が最終的に API から情報を受け取る前に、JSONP を使用するために API と JavaScript を変更する必要がありました。
私のjQueryは次のとおりです。
$.ajax({
url: "http://externalserver/php/api/test.php"
dataType: "jsonp",
type: "POST",
succes: function(data) {
console.log("success");
},
error: function(response) {
console.log("error");
}
});
PHP は、動作するためにこれを返します。
echo $_REQUEST['callback'] . '(' . json_encode($obj) . ')';
実際には、JSONP の代わりに JSON を使用したいと考えています。
API が私のような外部スクリプトからの着信要求を受け入れるようにするには、PHP ファイルを変更する必要があることを理解しました。
私がしなければならないことを教えてもらえますか?