我设置了一个ajax调用,它继续执行失败功能,而不是完成失败功能。它使控制台记录“不起作用”而不是“工作”。我的代码如下。 url'/'是索引方法。
var data =
{
"latlng": [e.latlng.lat, e.latlng.lng]
}
$.ajax({
url: '/',
method: 'GET',
dataType : "json",
data: data
}).done(function(response){
console.log(response);
}).fail(function(){
console.log("didnt work");
})
我的控制器
def index
if request.xhr?
return "works!"
end
端 我知道它命中了request.xhr,因为我在那里放了一个binding.pry,我看到了我的数据,但它似乎没有返回“工作!”。
编辑:我根据以下评论得到了它。我现在得到了回复,但它是一个HTML响应。我返回了字符串“works”但它似乎不像我的ajax响应。答案 0 :(得分:3)
如果查看Web控制台,您可能会看到错误。您已经告诉jQuery它应该期待JSON,但是您发回的内容并不是有效的JSON,所以当jQuery尝试解析它时,它会失败。
如果您从控制器中删除dataType: "json"
或返回有效的JSON,它应该可以正常工作。