jQuery getJSON请求返回空响应-相同的域

jQuery getJSON request returning empty response - same domain

本文关键字:响应 getJSON 请求 返回 jQuery      更新时间:2023-09-26

我一直在寻找一段时间来解释这个问题,但没有得到任何地方…

我有一个jQuery getJSON请求:
$.getJSON("http://localhost:8080/context/json/removeEntity.html", {
    contentId : 1,
    entIndex : entityIndex
}, onRemoveEntityResponse);

由URL: http://localhost:8080/context/entity.html?contentId=2 (相同的域和端口).

通过firebug在Firefox(5)和Chrome中看到的我的回应是空的。同样有趣的是,我在提供JSON请求的Java代码中设置了一个断点,它被击中,但只有在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,我们使用tile和Spring MVC来提供到JSP文件和Java控制器的映射。

我的Java控制器应该返回的JSON如下所示(如果我直接去URL):
{"oldEntityIndex":1,"isSuccess":true,"entityWasSaved":false}

我的愚蠢——我写的一个jQuery插件(包含在这里的回答中)有一个bug。

插件已经删除了发送AJAX请求的元素的onclick属性,并使用jQuery bind将其绑定,但是我忘记了使用onclick处理程序返回结果。因此,我的onclick处理程序返回false并阻止浏览器跟随底层链接被忽略,我猜浏览器随后取消了AJAX请求,因为它知道它即将移动到一个新页面。

浪费时间!对不起。