我一直在寻找一段时间来解释这个问题,但没有在哪里......
我有一个jQuery getJSON请求:
$.getJSON("http://localhost:8080/context/json/removeEntity.html", {
contentId : 1,
entIndex : entityIndex
}, onRemoveEntityResponse);
来自网址: http:// localhost:8080 / context / entity.html?contentId = 2 (相同的域名和端口)。
我在Firefox(5)中通过firebug看到的回复,而Chrome是空的。同样有趣的是,我在我的Java代码中提供了一个提供JSON请求的断点并且它命中,但只有在Firefox确定请求完成后才会这样。
我还调试了一些jQuery,以下是AJAX响应处理中涉及的一些变量(jQuery 1.5.2未缩小):
[Line:6651] deferred.rejectWith(callbackContext,[jqXHR,statusText,error])
jqXHR: { readyState:0, responseText:"", status:0, statusText:"error", ...})
statusText: "error"
error: ""
有什么想法吗?提前致谢。
修改
忽略URL请求HTML文件的事实,它不是真正的HTML,我们使用Tiles和Spring MVC来提供JSP文件和Java控制器的映射。
我的Java控制器应该返回的JSON如下(如果我直接转到URL):
{"oldEntityIndex":1,"isSuccess":true,"entityWasSaved":false}
答案 0 :(得分:1)
我的愚蠢 - 我写过的jQuery插件(并包含在答案here中)中有一个错误。
该插件删除了发送AJAX请求的元素的onclick
属性并使用jQuery bind
绑定它,但我忘记使用onclick
处理程序的是返回结果。因此我的onclick
处理程序返回false
并阻止浏览器跟踪底层链接被忽略,我猜浏览器然后取消了AJAX请求,因为它知道它将要移动到新页面。
浪费时间!遗憾。