我在PHP中做了一個簡單的API。 此API回顯是使用json_encode的對象。API停止支持JSONP
每例如:
echo json_encode($obj);
我使用jQuery檢索這個API的信息。 測試腳本和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更改爲正確的)。
我不得不改變API和JavaScript以便使用JSONP 在jQuery最終會從API接收信息之前。
我的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。
我知道我需要修改PHP文件,讓API接受來自像我這樣的外部腳本的輸入請求。
你能告訴我我需要做什麼嗎?
您可以使用阿賈克斯爲此 – Shin 2013-05-13 09:08:59
我不明白你的問題,請指明你在找什麼,你需要什麼。 – Reflic 2013-05-13 09:09:10
@shin:你認爲OP在做什麼? JSON,jQ PHP,外部服務器......它都指向AJAX,不是嗎?對於OP:你是否問如何讓X域XhttpRequests工作? – 2013-05-13 09:12:17