これは私の「一行」の解決策です:
$.postJSON = function(url, data, func) { $.post(url+(url.indexOf("?") == -1 ? "?" : "&")+"callback=?", data, func, "json"); }
jsonpおよびPOSTメソッドを使用するために、この関数は「コールバック」GETパラメータをURLに追加します。これはそれを使用する方法です:
$.postJSON("http://example.com/json.php",{ id : 287 }, function (data) {
console.log(data.name);
});
サーバーは、コールバックGETパラメーターを処理し、json文字列を次のように返すように準備する必要があります。
jsonp000000 ({"name":"John", "age": 25});
ここで、「jsonp000000」はコールバックGET値です。
PHPでは、実装は次のようになります。
print_r($_GET['callback']."(".json_encode($myarr).");");
私はいくつかのクロスドメインテストを行いましたが、うまくいくようです。まだもっとテストが必要です。
get
getJSON
手段GETを使用して、いくつかのJSONを取得します。