好吧,所以出於某種原因,即使服務器返回200有效的json,我的ajax調用仍會失敗。這裏是阿賈克斯調用:服務器返回有效的json和200,但錯誤功能正在拋出
$.ajax(
{
cache: false,
type: "GET",
url: "http://localhost:10590/api/entry",
dataType: "application/json; charset=utf-8",
success: function (result) {
alert('HIT');
},
error: function (request, type, errorThrown) {
alert('Fail' + type + ':' + errorThrown);
}
});
錯誤函數顯示空白。類型說「錯誤」,但之後沒有。我想弄清楚爲什麼會發生這種情況?
通過小提琴手經查實,這是從服務器返回的JSON字符串:
{
"EntryId":0,
"EntryDate":"2012-12-14T18:10:48.2275967-07:00",
"BodyWeight":207.00,
"Bmi":0.0,
"Fat":0.0,
"Visceral":0.0,
"MuscleMass":0.0
}
http://jsonlint.com/同意這是有效的JSON。
UPDATE: 添加以下的AJAX調用將會在IE瀏覽器而不是鉻工作之前:
$.support.cors = true;
我很確定'dataType'應該只是「json」。這不是一個MIME類型,也不是一個Content-Type頭。這只是提示jQuery如何解釋響應。另外,爲什麼不只是使用'/ api/entry'來保存你的URL,並且避免需要'cors' –
??因爲那會使它成爲一個相對的地址。頁面和服務是兩個不同的網站。我只是碰巧託管了他們兩個。 – Sinaesthetic