2017-08-10 11 views
0

同じオリジンポリシーを迂回しようとしています(バックエンドサーバーがない - ウェブサイトのみで、GoogleドライブにJSスクリプトがホストされています)。私は誰かのために取り組んでいるプロジェクトにWhateverOriginを使用することに決めました。このWebサイトでAjaxを実行できないのはなぜですか?

今それはすべてのウェブサイト上で働いていますまで - それは404

、働いていないページとの比較のためにmy JSFiddle test(以下のコードスニペット)を参照してください、といくつかのために働くものを(返すthis oneを除きます関数が逆順などで動作している理由はありますが、関数呼び出しの1つをコメントアウトすると、どのURLが動作していて、どのURLが動作していないかが明確に示されます)。

// for some reason this is calling the functions in the reverse order -- but try commenting out and you'll see that the second one doesn't work, the first one does 
 

 
$(function() { 
 

 
    works(); 
 
    notWorking(); 
 

 
    function works() { 
 
    $.getJSON('https://whateverorigin.herokuapp.com/get?url=' + encodeURIComponent("http://afcl.ussoccerda.com/sam/teams/index.php") + '&callback=?', function(data) { 
 
     alert(data.contents); 
 
    }); 
 
    } 
 

 
    function notWorking() { 
 
    $.getJSON('https://whateverorigin.herokuapp.com/get?url=' + encodeURIComponent("http://afcl.ussoccerda.com/sam/teams/index.php?team=1642601") + '&callback=?', function(data) { 
 
     alert(data.contents); 
 
    }); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Hurl.itはしかしそれをうまくページデータを取得することができます: enter image description here

私は私が間違ってプログラム的にやっているのと途方に暮れてよ、または私はこれを別の方法で修正することができます。 WhateverOriginを使用する以外にも、私のプロジェクト全体がそれに基づいており、この1つのWebページを除いて他のすべてのものが動作しているので、この時点ではあまりにも多くのオプションがありません。

答えて

0

最終バージョンでは、Webアプリケーションとサーバーが同じドメインにあり、開発中にクロスオリジン要求を行うだけで済みます。 開発でクロスオリジン要求のみを行う必要がある場合は、開発にchromeを使用し、chrome用の「Allow-Control-Allow-Origin:*」プラグインをインストールし、クロスオリジンアクセスを有効にします。

+0

最終バージョンでは、Webアプリケーションとサーバーは同じドメインには存在しません。これは今のところ、私がこのスクリプト/ウェブサイトを行っている人です(できませんそれ以上のものを特定しなくてはなりません)は、それを使用できる必要があります。私が参照した[特定のもの](http://afcl.ussoccerda.com/sam/teams/index.php?team=1642601)を除いて、その米国サッカーデベロップメントアカデミーのすべてのURLが機能しました。なぜ私のコードで失敗しているのか分かりません。 –

+0

ajaxの代わりにjsonpを使用してみてください – majestyc54

+0

JSONPを使用している場合、クロスドメイン要求を許可するためにAccess-Control-Allow-Originヘッダーを設定する必要があるからHTML情報を要求するサイトはありませんか?現在、WhateverOriginではその制限をバイパスできます。 –

関連する問題