2016-05-31 7 views
0

ローカルマシン上に2つのFlask Appsを実行しています。ローカルサーバーからのデータの要求

1)私のテストクライアントのWebサイト(ポート5001)に

2)(私は私のブラウザに127.0.0.1:5000/search/を入力すると、ポート5000)

に、私は次の取得私のAPI:

Test Hello World 

<!DOCTYPE html> 
<html> 
<body> 

<button type="button" onclick="loadDoc()">Request data</button> 

<p id="demo">TEST</p> 

<script> 

function loadDoc() { 
    var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
    if (xhttp.readyState == 4 && xhttp.status == 200) { 

     document.getElementById("demo").innerHTML = xhttp.responseText; 
    } 
    }; 
    xhttp.open("GET", "127.0.0.1:5000/search/", true); 
    xhttp.send(); 
} 
</script> 

</body> 
</html> 
:私は私のブラウザに 127.0.0.1:5001を入力した場合

は、私は、次のHTMLコードを含む通常のウェブページを(このすべてがOKに見える)を取得します

HTTPリクエストは127.0.0.1:5000/search/に送信され、ブラウザでテストされ、動作していますので、Test Hello Worldを返す必要がありますが、残念ながら何も起こりません。

基本的には、「データ要求」ボタン(上記参照)をクリックしても何も起こりません。

なぜでしょうか?私は何時間もこれに固執してきた。

答えて

2

セキュリティ上の理由から、ブラウザは、スクリプト内から開始されたクロスオリジンHTTPリクエストを制限します。たとえば、XMLHttpRequestは同じ起点のポリシーに従います。したがって、XMLHttpRequestを使用するWebアプリケーションは、独自のドメインへのHTTP要求のみを作成できます。 Webアプリケーションを改善するために、開発者はブラウザベンダーにXMLHttpRequestによるドメイン間要求の許可を依頼しました。

これらのリソースが役立つ場合があります。
HTTP access control (CORS)
Using CORS

0
"127.0.0.1:5000/search/" 

あなたのURLは、そのスキームが欠落しています。接頭辞はhttp://である必要があります。

ブラウザの開発者ツールを開いて[ネットワーク]タブを見ると、そこに404エラーが表示されます。


あなたがいることを修正したら、this question

で説明したように、クロスオリジンのエラーを持っているだろうと思われます
関連する問題