我剛從版本1.4升級到版本1.5的jQuery,現在我的AJAX調用總是失敗,出現「無效標籤」錯誤。jQuery 1.5 AJAX調用失敗,JSON請求的「無效標籤」
一個例子的要求是:
jQuery.ajax({
async: false
, dataType: "json"
, error: function (xhr, status, error) { ... }
, success: function (data, status, xhr) { ... }
, type: "post"
, url: "ajax/request.asp"
});
在我發現當返回的JSON不使用jQuery的回調包裹(這個錯誤引發如jQuery1234({ "something": "abcd" })
的問題是,我回來了網。一個JSON,而不是JSONP(我在AJAX請求中聲明它),所以爲什麼我必須在返回的JSON中指定一個回調函數?
1.5 changelog對此沒有提及......(或者是我不能讀?)
更新:
這是一個不工作的JSON的例子:
{
"esito":"Ok",
"centriCosto":[
{
"id":"1",
"descrizione":"Colazione"
},
{
"id":"2",
"descrizione":"Pranzo"
},
{
"id":"3",
"descrizione":"Cena"
}
]
}
這是相同的回調包裹的工作JSON:
jQuery1502710949228847014_1296739130498({
"esito":"Ok",
"centriCosto":[
{
"id":"1",
"descrizione":"Colazione"
},
{
"id":"2",
"descrizione":"Pranzo"
},
{
"id":"3",
"descrizione":"Cena"
}
]
})
順便說一句,螢火蟲他們倆都是有效的JSON(他對正確性非常挑剔)。
這可能是使用JSON本身的問題,我已經注意到,由於1.4 JQ一直嚴格得多約JSON結構。我的第一個JSON項目從'07開始失敗了,當我升級我的JQ時,我打開了JSON輸出,並且陷入了我構建它的糟糕程度。你可以發佈JSON嗎? – picus 2011-02-03 13:14:02
@picus:不,我對多個驗證器驗證了我的JSON,沒關係。如果我實現JSONP回調,它會再次開始工作,所以它不是格式問題。 – Albireo 2011-02-03 13:18:25
@picus:我已經添加了一個不工作和工作JSON的例子。 – Albireo 2011-02-03 13:24:06