jquery$.ajax在firefox和rails中不起作用(406响应)(在chrome和IE中起作用)
我有一个rails后端,正在测试以下jquery代码: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
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。