Skip to content

20260622mon

Published: at 15:00

20260622mon

CORS はブラウザだけの制約というのがポイントです。


CORS の仕組み

ブラウザからの場合

ブラウザ → Asteria Warp API
  「Origin: localhost:3000 からです」← ブラウザが自動でつける

Asteria Warp
  「localhost:3000 は許可リストにない → 拒否」

ブラウザ
  「サーバーが許可しなかった → エラー」← ブラウザが止める

Node.js(サーバー)からの場合

Node.js → Asteria Warp API
  Origin ヘッダーをつけない(ブラウザじゃないので)

Asteria Warp
  「普通の HTTP リクエストだな → 返す」

Node.js
  「受け取った → ブラウザに渡す」

まとめ

差出人名を変えているのではなく、そもそも Node.js はブラウザではないので Origin を名乗らない、だから CORS チェックが発動しない、というイメージです。

CORS は「ブラウザが悪いサイトに騙されて勝手にリクエストを送らないようにする」ためのブラウザの自衛機能なので、ブラウザ以外の HTTP 通信には最初から適用されません。


できる抜け道(開発・テスト用途)

方法内容
Postman / curlブラウザじゃないので Origin を名乗らない
ブラウザ拡張機能レスポンスヘッダーを改ざんして CORS を無効化(開発用)
Node.js プロキシ今回の話、ブラウザを経由させない

Postman が CORS を気にしなくていい理由もここです。ブラウザではないので Origin を名乗らず、サーバーも普通に返します。