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

时间:2011-07-05 13:41:26

标签: javascript jquery json getjson

我一直在寻找一段时间来解释这个问题,但没有在哪里......

我有一个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,我们使用TilesSpring MVC来提供JSP文件和Java控制器的映射。

我的Java控制器应该返回的JSON如下(如果我直接转到URL):

{"oldEntityIndex":1,"isSuccess":true,"entityWasSaved":false}

1 个答案:

答案 0 :(得分:1)

我的愚蠢 - 我写过的jQuery插件(并包含在答案here中)中有一个错误。

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

浪费时间!遗憾。