LoginSignup
13
13

More than 5 years have passed since last update.

Can't set headers after they are sent.で怒られた

Posted at

herokuにexpressをデプロイして別サーバからアクセスしたら

Origin http://〜 is not allowed by Access-Control-Allow-Origin.

といって怒られた。
そこでexpress側から「Access-Control-Allow-Origin」ヘッダを送出してやるようにした。
すると今度はアプリ自体がクラッシュしてしまうご様子。
「heroku logs --tail」としてログを見ながらアクセスしてみると

Error: Can't set headers after they are sent.

というエラーが出てアプリが停止してしまっていた。
ぐぐってみるとStackOverflowに同様の質問がありました。

res.writeHeadしたらres.writeかres.endしか使えないよ

ということらしい。

res.writeHead(200, {
            'Access-Control-Allow-Origin':'*'
          });
res.json(data);

となっていたのを

res.header(
            'Access-Control-Allow-Origin','*'
          });
res.json(data);

としたら行けました。

ぐぐって出てきたソースを切り貼りしてハマってぐぐって解決。

むむぅ。

13
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
13