Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 406进行ajax调用时出现不可接受的错误_Jquery_Ruby On Rails_Ajax_Coffeescript - Fatal编程技术网

Jquery 406进行ajax调用时出现不可接受的错误

Jquery 406进行ajax调用时出现不可接受的错误,jquery,ruby-on-rails,ajax,coffeescript,Jquery,Ruby On Rails,Ajax,Coffeescript,我的一个.js.coffee文件中有以下代码片段: $.ajax({ url: '/attachinary_files/' + id method: 'put' }).done(//do something) 在我的浏览器控制台中,我得到错误信息: 406 Not Acceptable 我找不到原因。我需要application.js文件中的必要文件,如: //= require jquery //= require jquery_ujs //= requ

我的一个.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

您缺少导致错误的内容类型

更新ajax代码以包含响应的数据类型:

$.ajax({
  url: '/attachinary_files/' + id
  method: 'put'
  dataType: 'script'
}).done(//do something)
有关更多详细信息,请参阅。

1)验证您的控制器是否接受js调用

2) 在JS代码中,指定需要JS格式的结果,包括标题或url:

url:'/attachinary\u files/'+id+'.js'

3) 如果还不够,请在控制器中指定为JS返回的内容:

respond_to do |format|
  flash.now[:notice] = nil
  format.js { render js: "alert('Hello Rails');" }
end

我使用的是Spring3.2.5,出现了这个错误。 通过使用3.1.1解决


您的路线对此有何说明?你的控制器代码呢?@RichPeck我已经更新了我的帖子谢谢。这很好,但是如果我删除警报,我将不得不创建一个.js部分?我说的对吗?是的,如果您不将响应内联,则需要部分响应