0

私はRailsが初めてで、application.jsで非常に単純なajax呼び出しを正しくしようとしていました。

コードは次のとおりです。

function login(loginUrl) {
    alert(loginUrl);

    $.ajax('http://www.w3schools.com/jquery/demo_test.txt', {success: function (result) {
        alert(result);
    }});
}

関数が呼び出されると、最初のアラートがうまく機能します。ただし、次の ajax 呼び出しが通過せず、2 番目のアラートが実行されないようです。w3school.com でコードを試してみましたが、うまくいきました。なぜこの単純なコードが Rails で機能しないのか、私は本当に困惑しています。

誰でも私を助けてもらえますか?

4

2 に答える 2

0

http://www.w3schools.com/jquery/demo_test.txt」これをあなたのloginUrl

于 2013-03-07T06:37:52.820 に答える
0

これは、Same Origin Policyと呼ばれるブラウザーの制限によるものです。JavaScript が読み込まれた場所とは異なるドメインに ajax リクエストを送信するのを防ぎます。

あなたの場合、でホストされているリソース( http://www.w3schools.com/jquery/demo_test.txthttp://www.w3schools.com )にアクセスしようとしていますが、リクエストを送信するページは同じドメインからのものではないため、ajaxリクエストが機能していません.

ブラウザのコンソールを見ると、同じようなエラーが表示される場合があります。

Same Origin Policy の解決策はjsonp ( What is JSONP all about? ) を使用することですが、サーバーが jsonp をサポートする必要があるという制約があります。

于 2013-03-07T04:36:57.810 に答える