通过jQuery的Ajax调用将始终被传输(状态200),但有时只有它被rails控制器接收。表示数据正确发送,但大多数时候控制器发回一个空的json对象作为响应。我需要超时,否则stringify不起作用。任何提示?
setTimeout(function() {
$.ajax({
type: "POST",
url: "homepage/routes",
data: {
routes_my: JSON.stringify(routes)
},
success: function(data) {
console.log(data);
}
});
}, 100);
}
#Controller
def routes
@routes = JSON.parse(params\[:routes_my\], object_class: OpenStruct)
render :json => @routes
end
答案 0 :(得分:0)
尝试此功能。
$(document).ready(function(){
var obj = JSON.stringify(routes);
$.ajax({
type: "POST",
url: "homepage/routes",
data: {routes_my: obj},
success: function(data) {
console.log(data);
}
});
});
答案 1 :(得分:0)
实际上问题是“路由”是异步功能的结果,有时只是部分可用。修复了通过调用Ajax作为回调函数。然后setTimeout无关紧要。