当我尝试实现 ajax 时,出现“406 Not Acceptable in 13ms (ActiveRecord: 0.6ms)”错误。代码在没有任何respond_to
块的普通 html 中工作。我已经将问题缩小到respond_to
块,我现在很难过。SO & google 上相同错误的其他解决方案似乎均不适用或有效。
respond_to
使用仅包含 html 或 ajax/js的块时,是什么导致 406 错误?- 如何修复 406 错误?
- 可以
redirect_to
在respond_to
块中使用format.html
如下代码所示吗?
如果您需要更多信息,请告诉我。
查看(哈姆):
普通的html代码
%div.control-group.controls
= button_to "Delete Gcal User", @gcal_user, method: :delete, class: "btn btn-danger"
AJAX 代码
%div.control-group.controls
= button_to "Delete Gcal User", @gcal_user, method: :delete, remote: true, class: "btn btn-danger"
AJAX 的 JS 代码(咖啡脚本)
$('#calendar').empty();
控制器:
class GcalUsersController < ApplicationController
def destroy
@gcal_user = current_user.gcal_user
# if @gcal_user.delete
# flash[:notice] = "#{@gcal_user.username} deleted"
# end
# redirect_to user_root_path # <-- using this in html mode, app works i.e. no 406 error
respond_to do |format|
format.html { redirect_to(user_root_path) } # <-- using this in html mode instead of above line, app fails i.e. 406 error
# format.js # <-- using this in ajax mode, app fails i.e. 406 error
end
end
end