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リクエストを使用しています。
このスクリプトが実行されているページで、http:// localhost:5000/'でもホストされていますか? –
いいえ、HTTPリクエストを送信するための別のHTMLファイルです。 – user40647
それは問題です。ブロックされている理由についてはこちらをご覧ください(https://en.wikipedia.org/wiki/Cross-origin_resource_sharing)。クライアント側で 'Access-Control-Allow-Origin'ヘッダを設定することはできません。これはサーバー上で設定する必要があります。つまり、サーバーは他のドメインに接続できるようにする必要があります。 –