rails 3 javascript未执行,尽管响应的是text/javascript内容类型
rails 3 javascript not executed despite a text/javascript content-type in response
我正在页面上执行一个非ajax GET请求。在相应的控制器/操作中,我返回javascript。但是,这个javascript并没有被执行。相反,它在我的浏览器上显示为文本。
被击中的动作:
def my_action
render :template => 'shared/_alert.js.erb', :content_type => 'text/javascript'
end
js.erb文件:
alert("hello");
Charles HTTP请求:
GET /my_action HTTP/1.1
Host: 172.16.151.186:3000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Cache-Control: max-age=0
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Cookie: _session_id=BAh7CEkiD3Nlc3Npb25faWQGOgZFRiIlZGZhMjFkOWRlNDQ3ZThlYjRiMzljNzMyMjg0N2E2YmJJIhBfY3NyZl90b2tlbgY7AEZJIjFtZ05jUmsxZlRIQ1FCaVVLczVCeUF2STNtY1gzUzhucTk3alF4RjVsVklFPQY7AEZJIhRjdXJyZW50X3VzZXJfaWQGOwBGSSIpYjMwNzg5NzItNDQzNi0xMWUxLTk5YzUtNGY3NjNlNzJhZmIyBjsARg%3D%3D--e345e67c4b130d2f3e4bdb48bd3d5d4f892f8272
Pragma: no-cache
Connection: keep-alive
Charles HTTP响应:
HTTP/1.1 200 OK
Content-Type: text/javascript; charset=utf-8
Etag: "9b9a7c156c510c98d7fd224227f7431f"
Cache-Control: max-age=0, private, must-revalidate
X-Ua-Compatible: IE=Edge
X-Runtime: 0.246125
Server: WEBrick/1.3.1 (Ruby/1.9.2/2011-07-09)
Date: Sat, 21 Jan 2012 15:23:09 GMT
Content-Length: 15
Connection: Keep-Alive
Set-Cookie: _session_id=BAh7CEkiD3Nlc3Npb25faWQGOgZFRiIlZGZhMjFkOWRlNDQ3ZThlYjRiMzljNzMyMjg0N2E2YmJJIhBfY3NyZl90b2tlbgY7AEZJIjFtZ05jUmsxZlRIQ1FCaVVLczVCeUF2STNtY1gzUzhucTk3alF4RjVsVklFPQY7AEZJIhRjdXJyZW50X3VzZXJfaWQGOwBGSSIpYjMwNzg5NzItNDQzNi0xMWUxLTk5YzUtNGY3NjNlNzJhZmIyBjsARg%3D%3D--e345e67c4b130d2f3e4bdb48bd3d5d4f892f8272; path=/; HttpOnly
alert("hello");
有人能帮我解决这个问题吗?
谢谢。
如果你想实现你在评论中所说的:"用户想从第X页转到第Y页,但出现了错误。"标准的方法是将flash[:error]哈希设置为你的消息,然后重定向回引用页面。在你的布局中,你会有一些erb片段,比如:
<% if flash[:error %>
<div class='flash error'><%= flash[:error] %></div>
<% end %>
在你的控制器上,你会设置一个前置过滤器,比如:
before_filter :validate_user
def before_filter
if <some condition is not met>
flash[:error] = "Oops...you are not logged in"
redirect_to :back # or some_defined_path
end
end
相关文章:
- 如何将输入(type=text)从html表单传递到javascript函数
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- 用Javascript添加带有#text的tr元素
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- W3验证器->使用<脚本类型=“;text/javascript”>在html的正文中
- 我如何在INPUT TEXT中使用这个Javascript和jQuery
- 节点,express应用程序返回text/javascript响应头(Content-Type),尽管设置了applic
- type=text/javascript和language=javascript之间的区别
- Javascript em根据窗口/视口尺寸调整大小,不影响文档样式的text/css
- 使用类型=“0”;text/plain”;用于JavaScript
- 在javascript文件中编写html标签而不是“text”
- 使用图像而不是文本(script type=“text/javascript”)
- text方法中的javascript设置变量
- 呈现图像&TEXT同时使用JavaScript和html
- Sublime Text 3-can't将javascript输出到浏览器
- jQuery/Javascript Button Text Change (EDIT!)
- 您对在HTML、CSS和JavaScript中开发理想的Sublime Text 2配置有什么建议
- Javascript:Can't从html标记中提取.text()
- 如何将 br 放入 JavaScript .text 中
- Javascript text box