我有一个场景,我必须从JS发送一个AJAX请求来更改数据库列中的布尔值。
Ajax代码
$.ajax({
type: "POST",
url: "/action"
});
控制器代码
def action
current_user.modal.last.toggle!(:boolean-column-name)
end
它成功更改了表列中的布尔值。但之后我在浏览器CONSOLE中收到错误,如下所示
POST http://URL/action
500 (Internal Server Error)
我是AJAX的新手。我在ajax请求中做错了什么?提前谢谢。
答案 0 :(得分:0)
500 (internal server error)
表示服务器端出现问题。这可能是几件事,但我首先要验证URL和参数是否正确。此外,请确保处理请求的任何内容(您的action
方法)都希望将请求作为POST。
编写success
回调以查看响应中的内容(ruby方法中的最后一行returns
自动在ruby中)并处理成功块中的响应。
答案 1 :(得分:0)
500(内部服务器错误)
这是服务器错误。与40x错误相反,500表示您的代码导致some sort of issue on the server。
您可以点击浏览器控制台的network
标签(以下是Chrome Right-Click -> Inspect Element -> Network -> Preview
)来检查您收到的回复(应该显示错误):
最终,您必须记住的是,如果您收到404错误,则表示无法找到资源; 500错误是您的代码的问题。
-
在您的情况下,我会执行以下操作:
#app/assets/javascripts/application.js
...
$.ajax({
type: "POST",
url: "/action",
success: function(data){
// do something on success
},
error: function(jqXHR,error, errorThrown) {
// do something on error
}
});
在不知道具体错误的情况下,您将很难解决它。