0
我正在頁面上執行非ajax GET請求。在相應的控制器/操作中,我返回javascript。但是,這個JavaScript沒有被執行。相反,它在我的瀏覽器上顯示爲文本。rails 3儘管文本/ javascript內容類型作爲響應,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");
能有些幫助我們解決問題呢?
謝謝。
非阿賈克斯得到的是永遠只是要更換當前頁面的響應內容。 –
因此,如果我希望能夠在我的動作邏輯中使用javascript給出警報,那麼我需要在該動作對應的頁面上執行AJAX GET?這似乎有點可笑...所以如果我有一個之前的過濾器,檢查用戶是否簽名,如果用戶沒有登錄,我想顯示一個JS警報,那麼我將需要執行AJAX請求在過濾前的所有頁面上? – deruse
不一定 - 您返回的HTML頁面可能包含腳本標籤,以顯示您的警報。 –