【发布时间】:2016-09-09 01:01:36
【问题描述】:
我设置了一个 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 并且我看到了我的数据,但它似乎没有返回“工作!”。
编辑:我让它按照下面的 cmets 工作。我现在收到回复,但它是一个 html 回复。我返回了字符串“works”,但它似乎没有显示为我的 ajax 响应。
【问题讨论】:
-
从不输出固定的“它不起作用”消息。它们对调试毫无用处。
.fail(function(e) { console.log(e); } -
@MarcB 哦,我没有意识到这一点。非常感谢您的提示!
-
你没有返回 json ......只是一个字符串。默认情况下,它将被视为 html。在您的控制器中指定渲染的输出类型。这个问题的第一个答案应该给你一个很好的起点:stackoverflow.com/questions/12385345/…
-
如果你想要纯文本格式,请查看apidock.com/rails/ActionController/Base/render 并查找红色文本“Rendering Text”。
标签: javascript jquery ruby-on-rails ruby ajax