我的.js.coffee文件中有以下代码片段:
$.ajax({
url: '/attachinary_files/' + id
method: 'put'
}).done(//do something)
在我的浏览器控制台中,我收到错误:
406 Not Acceptable
我无法找到原因。我在application.js文件中需要必要的文件,例如:
//= require jquery
//= require jquery_ujs
//= require_tree .
我无法找到我所缺少的东西。任何帮助将非常感激。感谢:)
编辑:
控制器
def update
super
attachinary_file = AttachinaryFile.find(params[:id])
AttachinaryFile.where(attachinariable_id: attachinary_file.attachinariable_id)
.update_all(is_primary: false)
attachinary_file.update_column(:is_primary, true)
respond_to do |format|
flash.now[:notice] = nil
end
end
答案 0 :(得分:2)
您缺少导致HTTP 406
错误的内容类型。
更新您的ajax代码以包含响应的数据类型:
$.ajax({
url: '/attachinary_files/' + id
method: 'put'
dataType: 'script'
}).done(//do something)
请参阅Data-Type (with jQuery)了解更多详情。
答案 1 :(得分:1)
1)确认您的控制器接受js通话
2)在你的JS代码中,指定你想要JS格式的结果,带标题或url:
url: '/attachinary_files/' + id + '.js'
3)如果还不够,在你的控制器中,指定你为JS返回的内容:
respond_to do |format|
flash.now[:notice] = nil
format.js { render js: "alert('Hello Rails');" }
end
答案 2 :(得分:0)
我使用的是Spring 3.2.5并且遇到了这个错误。 通过使用3.1.1
解决