jQuery Ajax获取JSON
我有一段代码:jQuery Ajax获取JSON,jquery,ajax,ruby-on-rails-3,Jquery,Ajax,Ruby On Rails 3,我有一段代码: $.ajax({ url: '/piece.json', type: "GET", dataType: "json", success: function (data) { alert(data); } }); 我使用的是rail3应用程序,当我键入“/piece.json”时,我在浏览器上得到了我想要的东西。但是我不能用Javascript让它保持警惕!为什么会发生这种情况 已解决,必须使用此选项: complete: function (data_response)
$.ajax({
url: '/piece.json',
type: "GET",
dataType: "json",
success: function (data) {
alert(data);
}
});
我使用的是rail3应用程序,当我键入“/piece.json”时,我在浏览器上得到了我想要的东西。但是我不能用Javascript让它保持警惕!为什么会发生这种情况
已解决,必须使用此选项:
complete: function (data_response) {
alert(data_response.responseText);
},
大概您没有
/piece.json
的工作路线。使用浏览器中的开发人员工具并从rails应用程序登录,查看XHR请求的进展情况
(查看浏览器中的http响应。)
请注意,您可以更简单地使用:
$.get('/piece.json',function(data){
// data is a JS object parsed from a JSON response
},'json');
有可能
piece.json
不返回有效的json,因此jQuery会丢弃它。尝试将数据类型:“json”
更改为数据类型:“html”
,然后查看警报(数据)
是否显示输出。如果警报显示您的数据,则json对象中存在语法错误。尝试使用complete
回调,而不是success
。我不知道为什么,但是success
回调不会启动,即使所有数据和响应都是正确的。看起来像是某种bug添加此项并查看返回的内容
error: function (error) {
alert(JSON.stringify(error));
}
尝试将数据类型更改为JSONP。这通常是为了克服同一原产地政策,但在您的情况下可能会奏效
$.ajax({
url: '/piece.json',
type: "GET",
dataType: "jsonp",
success: function (data) {
alert(data);
}
});
这对我很有用:
$.getJSON( "example.json", function(data) {
console.log( "success" );
}).done(function() {
console.log( "second success" );
})
.fail(function() {
console.log( "error" );
})
.always(function() {
console.log( "complete" );
});
将example.json替换为json文件的url或路径。
请注意$.getJSON与$get的用法。这是我的参考资料:将
piece.json
更改为test.json
?我没有收到任何错误。我只是什么都没得到,没有警报,什么都没有。警报(数据)有时警报在回调中工作不好在我看来就像文件引用错误。。请确保正确传递url。。同时点击chrome和Firebug中的F12按钮,检查是否有请求实际发布到浏览器。。如果你看到了,那就好了。。否则,您的ajax请求或文件引用会出错。.firebug说GET请求成功,并显示了我想要的字符串,但Javascript代码不起作用{“readyState”:4,“responseText”:“DOWN”,“status”:200,“statusText”:“OK”}是否使用有效的JSON标记进行响应?控制台中是否存在JS错误?