2015-07-03 101 views
2

我使用rails和haml。我通過Ajax後的數據發送到控制器中軌:.js.erb文件雖然在rails中呈現,但是仍未執行

$.ajax({ 
type: 'POST', 
url: '/preview-image-upload', 
processData: false, 
contentType: false, 
dataType : 'json', 
data: data 
}); 

然後我執行的數據,並在控制器渲染JS:

respond_to do |format| 
if @previewupload.save 
    format.js 
end 

對象正確保存。另外,.js.erb文件根據服務器日誌正確呈現:

Rendered path/preview_image_upload.js.erb (0.2ms) 
Completed 200 OK in 603ms (Views: 8.1ms | ActiveRecord: 8.5ms) 

對於測試的原因,我把警報到preview_image_upload.js.erb文件:

alert("Hello World"); 

但沒有任何反應。它看起來像.js.erb文件被呈現但沒有執行。

試圖解決從這裏: js.erb not executing javascript but is processed rails

{ render layout: false, content_type: 'text/javascript' } 

但沒有奏效。

+0

檢查'在谷歌/ Chrome或Firefox net'標籤從服務器響應。 –

+0

在FF Developer中可見的響應是「alert(」Hello World「);」 - 沒有錯誤發生。 – DonMB

+0

可以顯示控制器操作的完整代碼,視圖嗎? –

回答

0

我找到了解決方案。我只需刪除Ajax請求中的dataType屬性即可。使它看起來像這樣:

$.ajax({ 
type: 'POST', 
url: '/preview-image-upload', 
processData: false, 
contentType: false, 
data: data 
}); 
3

的數據類型來執行一個Rails從一個jQuery AJAX調用JavaScript的響應是script

相關問題