2017-06-20 56 views
0

我的應用程序使用Rails 5.1,每當我點擊一個link_toremote: true我得到一個InvalidCrossOriginRequest錯誤。在關閉僞造保護之後,應用程序最終向服務器發出完整的GET請求並顯示javascript。Rails`遠程:真正`沒有發出AJAX請求

這裏是鏈接:

= link_to 'Example', example_url, remote: true 

example.js.erb:

$('.example').html('alert("example message")'); 

路線:

scope :js, defaults: { format: :js } do 
    #### Example 
    get 'example', to: 'examples#example' 
end 

控制器:

def example 
    respond_to do |format| 
     format.html { redirect_to root_url, alert: 'Page not accessible' } 
     format.js 
    end 
end 

我包括我的模板中的javascript:

= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' 

我添加了必要的JS資產的路徑:

//= require_self 

// jQuery 
//= require jquery 
//= require jquery_ujs 
+0

*該應用程序最終使一個完整的GET請求到服務器和顯示的JavaScript *你有什麼期望它要做什麼? – Pavan

+0

@Pavan它'應該'改爲創建一個AJAX請求。 - >'remote:true' – jonhue

+0

你提到它是*顯示javascript *。這並不意味着它*使AJAX請求*? – Pavan

回答

0

的問題竟然是一段JavaScript,我正在運行。

e.stopPropagation(); 
1

你必須指定格式與respond_to在您的控制器中:

+0

這給了我一個'UnknownFormat'錯誤。 – jonhue

+0

你能重新嘗試一條正常的路線嗎? (不作爲默認範圍:{格式:: js}') – Aschen

+0

我實際上都嘗試過。 Scoped返回上面提到的錯誤,unscoped我得到一個交叉錯誤 - 在關閉忘記保護之後,它會再次發出完整的GET請求。所以我從我開始的地方回來了。 – jonhue