简体   繁体   English

尽管有text / javascript内容类型,但仍未执行rails 3 javascript

[英]rails 3 javascript not executed despite a text/javascript content-type in response

I am performing an non-ajax GET request on a page. 我正在页面上执行非ajax GET请求。 In the corresponding controller/action, I am returning javascript. 在相应的控制器/动作中,我将返回javascript。 However, this javascript is not being executed. 但是,此javascript没有被执行。 Rather, it is showing up as text on my browser. 相反,它以文本形式显示在我的浏览器中。

The action being hit: 被击中的动作:

def my_action
  render :template => 'shared/_alert.js.erb', :content_type => 'text/javascript'
end

The js.erb file: js.erb文件:

alert("hello");

Charles HTTP Request: 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 Response: 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");

Could some help me troubleshoot this? 可以帮我解决这个问题吗?

Thanks. 谢谢。

If you want to achieve what you stated in the comments: "User wants to go to page Y from page X, but there's an error." 如果您要实现注释中所述的内容:“用户希望从X页转到Y页,但是有错误。” The standard way to do this is set the flash[:error] hash to your message, and redirect back to the referring page. 执行此操作的标准方法是将flash [:error]哈希设置为您的消息,然后重定向回引用页面。 In your layout you'd have some erb snippet like: 在您的布局中,您会看到一些erb片段,例如:

<% if flash[:error %>
  <div class='flash error'><%= flash[:error] %></div>
<% end %>

And on your controller you'd set up a before filter like: 在您的控制器上,您需要设置一个before过滤器,例如:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在文本文件中保存响应类型“ Content-Type:text / javascript” - Save response type “Content-Type : text/javascript” in text file JavaScript内容类型 - JavaScript content-type 节点,尽管设置了application / javascript,express app仍返回text / javascript响应标头(Content-Type) - node, express app returns text/javascript response header (Content-Type) in spite of setting application/javascript Rails3使用text / html内容类型而不是text / javascript呈现js.erb模板 - Rails3 renders a js.erb template with a text/html content-type instead of text/javascript 依赖Content-Type:text / plain来缓解恶意javascript执行是否安全? - Is it safe to rely on Content-Type: text/plain to mitigate malicious javascript execution in response? JavaScript:在响应对象上设置 Content-Type 标头 - JavaScript: Set Content-Type header on Response Object Rails默认使用“ text / javascript”内容类型,以响应使用form_for构建的简洁的JavaScript表单 - Rails Defaults to “text/javascript” Content Type in Response to Unobtrusive JavaScript Form Built With form_for Rails 5.2.1 UJS:javascript响应正在呈现文本而不是被执行 - Rails 5.2.1 UJS: javascript response is rendering text instead of being executed 在Meteor中指定内容类型(JavaScript) - Specifying content-type in Meteor (JavaScript) Rails 3原型渲染:更新响应具有text / html内容类型 - Rails 3 prototype render :update response has text/html content-type
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM