クライアント側のファイルをホストするために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);
許可されたオプションはまだ機能していませんが、誰が問題を正確に示唆していますか?サーバー側でリクエストを受信していますが、応答を送信できません。
前もって感謝します :)
エラーメッセージは言う:
「Access-Control-Allow-Origin」ヘッダーなし
Access-Control-Allow-SOMETHING
ヘッダーを3つ設定しましたが、Origin
はありません。
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();
});