0
ページ上で非Ajax GETリクエストを実行しています。対応するコントローラ/アクションでは、私はJavaScriptを返しています。しかし、このjavascriptは実行されていません。むしろ、ブラウザ上にテキストとして表示されています。rails 3応答がtext/javascriptのcontent-typeでもjavascriptが実行されない
アクションがヒットしている:
def my_action
render :template => 'shared/_alert.js.erb', :content_type => 'text/javascript'
end
js.erbファイル:
alert("hello");
チャールズ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
チャールズ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");
は、いくつかは、私は、このトラブルシューティングを助けることができますか?
ありがとうございました。
非Ajaxは常にちょうど置き換えるために起こっている取得します現在のページにレスポンスの内容を追加します。 –
アクションロジックで特定の条件が満たされている場合にjavascriptを使用してアラートを送信する機能が必要な場合は、そのアクションが対応するページでAJAX GETを実行する必要があります。これはちょっとばかげているようです...もし私がユーザーに署名されているかどうかをチェックする前のフィルタを持っていて、ユーザーがサインインしていなければJSアラートを表示したいのですが、AJAXリクエストを実行する必要がありますその前にフィルタがあるすべてのページで?? – deruse
必ずしもそうではありません - あなたが返すHTMLページに、アラートを表示するスクリプトタグが含まれている可能性があります。 –