Ruby on rails 能够在控制台中获取JSON数据,但无法将其绑定到表单上的AJAX调用
我正在通过浏览器控制台调用JSON请求,并且能够得到预期的响应。这是电话:Ruby on rails 能够在控制台中获取JSON数据,但无法将其绑定到表单上的AJAX调用,ruby-on-rails,ajax,json,Ruby On Rails,Ajax,Json,我正在通过浏览器控制台调用JSON请求,并且能够得到预期的响应。这是电话: $.get("/settings/getstates?account%5Baddresses_attributes%5D%5B0%5D%5Bcountry%5D=US", function(data){ console.log(data); var items = []; $.each(data, function(key, val) { items.push(val.name); });
$.get("/settings/getstates?account%5Baddresses_attributes%5D%5B0%5D%5Bcountry%5D=US", function(data){
console.log(data);
var items = [];
$.each(data, function(key, val) {
items.push(val.name);
});
alert(items);
}, 'json')
但是,当我尝试将调用绑定到表单菜单中的选择器时,出现了一个错误:
未捕获的TypeError:对象json没有方法“apply”
以下是与AJAX绑定相同的调用:
$(document).ready(function() {
$("#country").bind('ajax:success', function(evt, data, status, xhr){
console.log(data);
var items = [];
$.each(data, function(key, val) {
items.push(val.name);
});
alert(items);
}, 'json')
});
这是在Rails 3.2中-不确定这是否重要?我不熟悉JS/jQuery等,所以这可能是一个愚蠢的错误。我找到了修复它的方法。我只需要删除最后一行中的“json”引用,结果是:
$(document).ready(function() {
$("#country").bind('ajax:success', function(evt, data, status, xhr){
console.log(data);
var items = [];
$.each(data, function(key, val) {
items.push(val.name);
});
alert(items);
});
});
您是否检查了返回的数据是否是有效的json?谢谢你的提示,我会去看看那个网站。我能够解决这个问题,所以我把答案贴在下面。