2017-06-20 16 views
0

私のアプリはRails 5.1を使用し、link_toremote: trueとクリックすると、InvalidCrossOriginRequestというエラーが発生します。偽造防止をオフにした後、アプリケーションはサーバに完全なGETリクエストを作成し、javascriptを表示します。ここでRails `remote:true` 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

通常のルートで再試行できますか? ( 'defaults:{format::js}'でスコープしません) – Aschen

+0

私は実際に両方を試しました。 Scopedは上記のエラーを返します。範囲外です。クロスオリジンエラーが発生します。保護を忘れると、GETリクエストが再び完全になります。だから私はどこから始めたのですか? – jonhue

関連する問題