結構アホくさい感じですが, 小時間ハマったので.
前提
GAE でちょっとしたビューアー作成中に, FetchAPI を使って同ドメインの GAE サーバーからデータを引っ張ろうと API リクエストを送りました.
fetch('/api/get_user_data', {
method: 'GET',
}).then((response) => {
// Do HogeHoge
});
結果,
クロスオリジン要求をブロックしました ~~ (By FireFox の開発コンソール)
と出ました.
ドメインは同じはずなのになんでかなーと GCP ロギングを見ると,
302 /api/get_user_data
とリダイレクトされていました.
さらにリダイレクトしている部分を見ると,
https://www.google.com/accounts/ServiceLogin?service=ah&passive=
経由となっています.
なるほど確かに app.yaml で /api 下は login: required 設定なのでログインしているか確認しているのはうなずけます. ただ, API リクエストはログイン後なんだけどなあ, と迷っていたら...
Cookie送ってないなこれは
ということで
fetch('/api/get_user_data', {
method: 'GET',
credentials: "same-origin",
}).then((response) => {
// Do HogeHoge
});
と直して通るようになりました.