これは私の「一行」ソリューションです:
$.postJSON = function(url, data, func) { $.post(url+(url.indexOf("?") == -1 ? "?" : "&")+"callback=?", data, func, "json"); }
jsonp と POST メソッドを使用するために、この関数は「callback」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).");");
いくつかのクロスドメイン テストを行ったところ、うまくいくようです。ただし、さらにテストが必要です。