我在 Rails 应用程序中无法成功返回 Controller 功能。
$.ajax
url: '/create_signup'
type: 'POST'
dataType : 'json'
data: { signup: { email: email }}
success: ->
# mixpanel
hideEmailBar()
error: (data) ->
console.log data
console.log "didnt work again"
alert "There was an error signing you up. Please try again or contact Customer Support."
发布很简单,并且可以在 Controller 中工作到下面的点。 result.code
等于 200,然后 render json: {}
导致 AJAX 调用陷入错误情况。
我知道 head :ok
不起作用,因为 AJAX 调用的 dataType
是 json
。
result = HTTParty.post(url, options)
p result.code
if result.code.to_i == 200
render json: {}
else
raise "Error Signing Up User"
end
我很乐意帮助找出我在这里做错了什么。谢谢!
最佳答案
看来您的问题可能在于未使用 respond_to
block 。在您的代码中,您只是返回一个 JSON 对象,而不指定类型,这是 jQuery 进行 ajax 调用所需要的。响应仍然是 200,它只会显示为 parseError
。
试一下:
respond_to do |format|
format.json {
render json: {}
}
end
这将响应类型指定为 JSON,这应该可以解决问题。
关于javascript - Rails 渲染 json : {} causing AJAX function to fall into error function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44468023/