我有返回JSON數據的服務:http://api.drag2droid.shamanland.com/captcha?base64AJAX請求失敗原因不明(jQuery的)
我試圖執行簡單的AJAX請求:
$.ajax({
type: "get",
url: "http://api.drag2droid.shamanland.com/captcha?base64",
dataType: "json",
success: function(data) {
$("body").html(data);
},
error: function(jqXHR, textStatus, errorThrown) {
$("body").html("ajax failed: " + textStatus + ", " + jqXHR.status + " " + errorThrown);
}
});
結果是:
ajax failed: error, 0
但是,如果我只是將這個URL粘貼到我的瀏覽器的地址欄中,我可以看到JSON響應。
有人知道可能的陷阱嗎?
的jsfiddle:http://jsfiddle.net/shomeser/n5TjL/
編輯:
其實,我已經設置了我的服務器端允許來自任何域的任何標題,PHP代碼的所有請求:
if ($_SERVER["REQUEST_METHOD"] == "OPTIONS") {
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Max-Age: 86400");
header("Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS");
if (isset($_SERVER["HTTP_ACCESS_CONTROL_REQUEST_HEADERS"])) {
header("Access-Control-Allow-Headers: {$_SERVER["HTTP_ACCESS_CONTROL_REQUEST_HEADERS"]}");
}
exit(0);
}
編輯:
在冷杉的網絡選項卡ebug插件我可以看到沒有檢索到內容:
但是直接從瀏覽器獲取GET請求會顯示完整內容。
檢查你的開發工具,網絡選項卡,並查看請求後, ajax調用失敗了。如果它的跨域問題,你的控制檯應該有一些錯誤。 –
您是否在同一個域上運行該網站和API?我相信你知道AJAX調用不能跨域使用。爲此你必須使用'JSONP' –