我刚刚从jQuery 1.4升级到1.5版本,现在我的AJAX调用始终会出现“无效标签”错误。
以下是一个示例请求:
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版本更新日志没有关于此的说明...(还是只有我看不懂?)
更新:
这是一个不起作用的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"
}
]
})
顺便提一下,Firebug显示它们都是有效的JSON(而且它对正确性要求很高)。
async: false
吗? - ThiefMasterasync: false
而不是复制显示框的代码(这是一个内部网络应用程序,半秒钟的延迟并不重要)。 - Albireo