2016-06-13 17 views
1

XMLHttpRequestを使用してJavaScriptでHTTPリクエストを送信しようとしていますので、HTMLファイルで次のコードを使用しています。私は{'test': 'string'}という形式の辞書を返すサーバを実行しています。クロスオリジン要求がブロックされました:XMLHttpRequestを使用したjavascript

 <script type="text/javascript"> 
     var xhr = new XMLHttpRequest(); 
     xhr.open("GET", "http://localhost:5000/test", true); 
     xhr.setRequestHeader("Access-Control-Allow-Origin", "*"); 
     xhr.send(); 

     xhr.onreadystatechange = processRequest; 
     console.log(xhr.status) 

     function processRequest(e) 
     { 
      if (xhr.readyState == 4) 
      { 
       alert(xhr.responseText); 
      } 
     } 
     </script> 

私はクロスオリジン・リクエストがブロックされて取得していますヘッダ付加するのがinspite:私は、コンソールにそれが応答として0を示しxhr.status印刷しようとすると、私のコンソールでエラーが発生しました。 httpsを使用しているときに不正なメッセージエラーを示すフラスコサーバーを使用しているため、httpリクエストを使用しています。

+0

このスクリプトが実行されているページで、http:// localhost:5000/'でもホストされていますか? –

+0

いいえ、HTTPリクエストを送信するための別のHTMLファイルです。 – user40647

+0

それは問題です。ブロックされている理由についてはこちらをご覧ください(https://en.wikipedia.org/wiki/Cross-origin_resource_sharing)。クライアント側で 'Access-Control-Allow-Origin'ヘッダを設定することはできません。これはサーバー上で設定する必要があります。つまり、サーバーは他のドメインに接続できるようにする必要があります。 –

答えて

1

フロントエンドからCORSを制御することはできません。 CORSモジュールをバックエンドサーバーに配置する必要があります。

flask corsを確認してください。

関連する問題