Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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$.ajax在firefox和rails中不起作用(406响应)(在chrome和IE中起作用)_Jquery_Ruby On Rails - Fatal编程技术网

jquery$.ajax在firefox和rails中不起作用(406响应)(在chrome和IE中起作用)

jquery$.ajax在firefox和rails中不起作用(406响应)(在chrome和IE中起作用),jquery,ruby-on-rails,Jquery,Ruby On Rails,我有一个rails后端,正在测试以下jquery代码: var content = $("#notification_content").val(); var data = new Object(); data.content = content; $.ajax({ url: "/notifications/detect_type.json", type:"POST", data: data, success: function(result ){updateTypeDropD

我有一个rails后端,正在测试以下jquery代码:

  var content = $("#notification_content").val();
  var data = new Object();
  data.content = content;
  $.ajax({ url: "/notifications/detect_type.json", type:"POST", data: data, success: function(result  ){updateTypeDropDown(result)}});
这段代码在Chrome和IE中运行良好。但是在使用Firebug的Firefox中,我看到: 406不可接受

日志中有一个firefox请求:

加工 通知控制器检测类型 2010年12月21日17:05:59时的127.0.0.1 [发布]参数: {action=>检测_类型, 内容=>226南艾默生丹佛 co 80209, 控制器=>通知}用户 2.0ms列显示来自的字段 用户用户负载37.4ms选择 *从users.id='1'限制1在58ms视图中完成的用户: 1,分贝:40| 406不可接受[http://localhost/notifications/detect_type.json]

日志中有一个chrome请求:

加工 通知控制器检测类型 2010年12月21日17:06:41时的127.0.0.1 [POST]参数:{action=>detect_type, 内容=>226南艾默生80209, 控制器=>通知} 用户列2.1ms显示来自用户的字段 用户负载30.4ms 从users.id='1'限制1已完成的用户中选择* 在100ms视图中:1,DB:33| 200行[http://localhost/notifications/detect_type.json]


我被难住了。想法?

基于快速搜索,可能406表示浏览器Firefox拒绝接受从服务器发送的请求内容类型

尝试配置Firefox以接受json。基于此,Firefox可能希望使用扩展

更新

由于这似乎是对$.ajax的直接使用,您应该能够在不更改任何Firefox客户端设置的情况下使其正常工作。通过在init期间添加一个选项,尝试显式地告诉jquery返回的数据应该是什么类型,如下所示:

数据类型:json


有关更多信息,请参阅相关jquery文档。

奇怪的是,解决方案是在rails端执行此操作:

format.js {
  render :text => type.to_json
}
format.json {
  render :json => type.to_json
}

JQuery bug?不确定…

我认为这个答案是正确的。。。但我想让这个回应只适用于任何firefox。。。。我必须转换成XML吗?你不应该这样;我可以将Firefox与$.ajax配合使用——尝试添加数据类型:json;我将添加到我的answerdataType中:json是我尝试的第一件事。仍然得到一个406.using format.js和render:text=>type.tojson,我也修复了它。。。我已经尝试了中的所有建议,但没有成功。对于任何可能遇到这种情况的人,我在firefox中遇到了完全相同的错误,然后我意识到我在firefox中禁用了javascript。