Ruby on rails Rails3XHR响应充当text/html而不是text/javascript
我刚刚将一个应用程序从Rails2.3升级到Rails3.0。此应用程序广泛使用Ajax 自升级以来,每个Ruby on rails Rails3XHR响应充当text/html而不是text/javascript,ruby-on-rails,ajax,ruby-on-rails-3,xmlhttprequest,Ruby On Rails,Ajax,Ruby On Rails 3,Xmlhttprequest,我刚刚将一个应用程序从Rails2.3升级到Rails3.0。此应用程序广泛使用Ajax 自升级以来,每个 respond|to do |格式| format.js 结束 响应的内容类型为text/html,而不是text/javascript(在Firebug中查看)。XHR请求指定Accept=“text/javascript”。结果是Prototype拒绝评估响应,所以我的页面上没有更多的魔力 为了精确起见,我决定加入遗留的RailsPrototypeHelpers,完整的UJS应用程序
respond|to do |格式|
format.js
结束
响应的内容类型为text/html
,而不是text/javascript
(在Firebug中查看)。XHR请求指定Accept=“text/javascript”
。结果是Prototype拒绝评估响应,所以我的页面上没有更多的魔力
为了精确起见,我决定加入遗留的RailsPrototypeHelpers,完整的UJS应用程序将是下一个应用程序
作为参考,我尝试将js放在js.rjs文件中:内容类型仍然是“text/html”
我尝试内联js并强制使用render:update,:content\u type=>“text/javascript”
:运气不好,仍然使用“text/html”content\u type进行回答
欢迎提出任何建议
谢谢。我也遇到过类似的问题。我发现如果我添加以下内容,我可以让它返回
text/javascript
:
headers["Content-Type"] = "text/javascript; charset=utf-8"
render :update do |page|
...
end
或
这里也发生了同样的事情,但更奇怪。Chrome和Safari都可以。然而,在Firefox上,第一次post请求时内容类型设置为
text/javascript
,而第二次请求时内容类型设置为text/html
,这给了我406分。使用Rails 3.2.3这个问题仍然存在,尽管它似乎没有影响到所有人:。
respond_to do |format|
format.js {headers["Content-Type"] = "text/javascript; charset=utf-8"}
end