Javascript jQuery getJSON请求返回空响应-同一域
我已经寻找了一段时间来解释这个问题,但没有得到 我有一个jQuery getJSON请求:Javascript jQuery getJSON请求返回空响应-同一域,javascript,jquery,json,getjson,Javascript,Jquery,Json,Getjson,我已经寻找了一段时间来解释这个问题,但没有得到 我有一个jQuery getJSON请求: $.getJSON("http://localhost:8080/context/json/removeEntity.html", { contentId : 1, entIndex : entityIndex }, onRemoveEntityResponse); 由URL生成:http://localhost:8080/context/entity.html?contentId=2
$.getJSON("http://localhost:8080/context/json/removeEntity.html", {
contentId : 1,
entIndex : entityIndex
}, onRemoveEntityResponse);
由URL生成:http://localhost:8080/context/entity.html?contentId=2 (相同的域和端口)
通过Firefox(5)和Chrome中的firebug看到的我的回应是空的。同样有趣的是,我在Java代码中设置了一个断点,为JSON请求提供服务,它被命中,但只有在Firefox确定请求完成之后
我还调试了一些jQuery,下面是AJAX响应处理中涉及的一些变量(jQuery 1.5.2未精简):
[Line:6651]延迟。拒绝(callbackContext[jqXHR,statusText,error])
jqXHR: { readyState:0, responseText:"", status:0, statusText:"error", ...})
statusText: "error"
error: ""
有什么想法吗?提前谢谢
编辑:
jqXHR: { readyState:0, responseText:"", status:0, statusText:"error", ...})
statusText: "error"
error: ""
忽略URL请求HTML文件这一事实,它不是真正的HTML,我们使用来提供到JSP文件和Java控制器的映射
我的Java控制器应该返回的JSON如下所示(如果我直接转到URL,则为):
我的愚蠢——我写的一个jQuery插件(并包含在一个答案中)有一个bug 插件删除了发送AJAX请求的元素的
onclick
属性,并使用jQuerybind
将其绑定,但是我忘记了使用onclick
处理程序返回结果。因此,我的onclick
处理程序返回false
并阻止浏览器跟随底层链接被忽略,我猜浏览器随后取消了AJAX请求,因为它知道它将要移动到新页面
浪费时间!抱歉。为什么是HTML文件?另外,你能展示一下JSON吗?Firebug告诉你请求成功了吗?不,它是红色的,但是请求URL旁边没有响应代码,就像通常的200、404、403等等一样。你确定服务器返回了正确的JSON吗?我使用Java JSON库来输出JSON字符串;在这一阶段,这并不重要,因为在jQuery开始处理“响应”之后,Java代码中的断点会被命中。