web-dev-qa-db-ja.com

XMLHttpRequestを読み込めません。要求されたリソースに「Access-Control-Allow-Origin」ヘッダーがありません。したがって、Originはアクセスを許可されていません

クライアント側のファイルをホストするためにApache httpdサーバーを使用しています

http://ipaddress:8010/

私のNodejsサーバーはhttp://ipaddress:8087で実行されています

投稿リクエストを送信すると、次のエラーが表示されます

XMLHttpRequest cannot load http://ipaddress:8010/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://ipaddress:8087' is therefore not allowed access.

私のクライアントサイドコードは:

    $.ajax({
  type: "POST",

  url: "http://ipaddress:8010",
  data: {name:"xyz"},
  success: function(){
  alert("success");
  },
  dataType: "json"
});

私のサーバー側は:

response.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');


    response.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');


    response.setHeader('Access-Control-Allow-Credentials', true);

許可されたオプションはまだ機能していませんが、誰が問題を正確に示唆していますか?サーバー側でリクエストを受信して​​いますが、応答を送信できません。

前もって感謝します :)

6
Rahul

エラーメッセージは言う:

「Access-Control-Allow-Origin」ヘッダーなし

Access-Control-Allow-SOMETHINGヘッダーを3つ設定しましたが、Originはありません。

9
Quentin

CORSを有効にする必要があります。

ApacheにCORSヘッダーを追加するには、<Directory><Location><Files>または<VirtualHost>サーバー構成ファイルのセクションまたは.htaccessファイル内:

Header set Access-Control-Allow-Origin "*"

apacheについては、このリンクを参照してください

http://enable-cors.org/server_Apache.html

Expressの場合、応答に必要なヘッダーを設定するミドルウェアを追加できます

app.use(function (req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "X-Requested-With");
  next();      
}); 

http://enable-cors.org/server_expressjs.html

6
Yalamber