我设置了一个 ajax 调用,它一直转到 fail 函数而不是 done 函数。它使控制台日志记录“不起作用”而不是“有效”。我的代码如下。 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");
})
我的 Controller
def index
if request.xhr?
return "works!"
end
结束 我知道它命中了 request.xhr,因为我在那里放了一个 binding.pry 并且我看到了我的数据,但它似乎没有返回“有效!”。
编辑:我根据下面的评论让它工作。我现在收到回复,但它是一个 html 回复。我返回了字符串“works”,但它似乎没有显示为我的 ajax 响应。
最佳答案
如果您查看 Web 控制台,您可能会看到一个错误。您已经告诉 jQuery 它应该期待返回 JSON,但是您发回的不是有效的 JSON,因此当 jQuery 尝试解析它时,它会失败。
如果您删除 dataType: "json"
或从 Controller 返回有效的 JSON,它应该可以工作。
关于javascript - 为什么我的 ajax 调用失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39396288/