为什么从我的jQuery.getJSON()方法调用fail方法?
Why is the fail method being called from my jQuery.getJSON() method?
我有一个html页面直接从web浏览器(FF 14.0.1或Chromium, Ubuntu 12.04)的本地文件加载
这个html页面包含一个本地的jQuery js文件,然后用这个方法包含一个本地的js文件:
function start() {
$.getJSON("http://localhost:8080/app/connect?callback=?", "id=11", function() { alert("win!"); })
.done(function() { alert("done"); })
.fail(function(xhr, request, error) { alert(xhr.status + "<> + request + "<>" + error); }); }
我正在响应来自JBoss/Restful web服务器的这些请求,没有特殊配置,服务器上的方法用@Produces({"application/json"})注释。服务器没有显示任何错误,甚至得到正确的id值
当我触发这个javascript时,fail方法被调用,我得到这个警告:
200<>parsererror<>jQuery311391951_513134 was not called
当使用Firebug检查时,我可以看到JSON响应,它看起来不错。在Chromium中,我可以检查请求/响应头,一切看起来都很好。我保存了这段文字,如果有人认为它可以提供更多的见解。
谁能告诉我发生了什么事?为什么会出现这个错误?提前感谢!
看起来您正在访问本地资源,在这种情况下您不必使用jsonp。您可以从url中删除callback=?
。
当您必须访问违反同源策略的第三方资源时使用
function start() {
$.getJSON("http://localhost:8080/app/connect", "id=11", function() {
alert("win!");
}).done(function() {
alert("done");
}).fail(function(xhr, request, error) {
alert(xhr.status + "<>" + request + "<>" + error);
});
}
您正在使用JSONP (JSON with Padding)。服务器必须理解?callback=
参数,并用回调函数包装JSON应答。这对于应用SOP限制的呼叫是强制性的。如果不是(相同的域和端口),则删除回调参数
相关文章:
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- javascript从子方法调用父方法
- 我应该返回一个类似console.log()的方法调用吗
- NodeJS-从同一文件中的另一个方法调用一个方法
- 使用restangular save方法调用put与post时的控件
- 从实例方法调用实例方法
- Node.js-异步方法调用问题
- Jquery事件绑定获胜'当作为方法调用时不起作用,但当直接在控制台中调用时会起作用
- 向模板实例变量传递调用方法调用的结果时出现异常
- jQuery 方法调用了两次
- 不能从 Backbone.View 的方法调用 Backbone.collection 的方法,其中包含 require
- 组合 onLayout 的方法调用
- lodash/下划线 - 使用绑定与方法调用和方法保持未绑定
- 从公共方法调用模块的私有函数
- 如何对 jqGrid 的 loadComplete 和 onSelectRow 进行基因预和后方法调用
- 完全限定的 JavaScript 方法调用
- 为什么我在 Angular JS 中收到两个方法调用
- 如何在从排序方法调用参数时将其传递给回调
- 使用两种不同的方法调用方法
- 如何在 javascript 中更改方法调用的全局范围