- 1. 概要
- 2. 現象
- 3. CORS を無効化する
- 4. 参考サイト
1. 概要
これ、うまく説明できないのですが、詳細は、参考サイトをご参照ください。
2. 現象
クライアントのマシンで、「.html」を作成して、「Javascript」で。
async function Post(contents, payload)
{
url.textContent = `${API_BASE}`+contents;
mySpanElement.textContent = JSON.stringify(payload, null, 2);
const response = await fetch(url.textContent, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Accept": "application/json"
},
body: JSON.stringify(payload)
});
return response;
}
てなソースを書きまして。
ウェブサーバに、「.json」形式のボディを渡して、「POST」した結果を受け取ろうとするのですが・・・。
「CORS」の機能によって(?)、ブラウザからリクエストを発行する際に、ウェブサーバ側へ「OPTIONS」を発行してしまうのです。
これは、セキュリティ上の安全のための機能であるようですが。
試験で、「Javascript」を組んでいるし、サーバ側は「OPTIONS」のルートを用意(?)していないので、レスポンスが返ってこないのです。
3. CORS を無効化する
以下、一時的に、「CORS」を無効化して、「Vivaldi」を起動します。
「Windows11」での起動にですが。
C:\Users\user_name\AppData\Local\Vivaldi\Application\vivaldi.exe --disable-web-security --user-data-dir=D:\tmp
となります。
「--disable-web-security」オプションだけでもいけるかと思いましたら。
「--user-data-dir=D:\tmp」が、サンドボックスか何かになっているようで、「D:\tmp」には、有効なドライブ、フォルダを指定する必要があります。
「Vivaldi」は、「Chrome」と同じ、「Chromium」の子供ですので、「Chrome」や、他の「Chromium」の子供達でも、この方法は有効です。
4. 参考サイト
本ページは、下記のサイト、および「ChatGPT」くん、「Gemini」くんを参考にさせていただきました。
「クロスオリジンリソース共有 - Wikipedia」
「ブラウザで CORS を無効化する方法 #Security」
|
|