1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Office ScriptsからのfetchでCORSエラーが発生する場合の対処

Last updated at Posted at 2024-10-04

結論

バックエンド側のレスポンスヘッダーに以下を設定すればOK!

正しいヘッダー
"Access-Control-Allow-Origin": "https://*.officescripts.microsoftusercontent.com"

Web版のExcelを使っている場合は、ブラウザで開いているURLと同じオリジン↓に設定したくなりますが、これでは動きません。

誤ったヘッダー
"Access-Control-Allow-Origin": "https://*.sharepoint.com/"

どうやら<iframe>タグで別のオリジンのHTMLが多重に呼ばれており、最深部がofficescripts.microsoftusercontent.comになっているようです。

感想

Google Apps Script(GAS)とかなり似ているOfficeスクリプトですが、GASはサーバーサイド、Officeスクリプトはクライアントサイドで動いているようで、GASで動いているロジックをOfficeスクリプトに移植とかは、それなりにハマる部分が多いかもしれません。
公式ドキュメントでもCORSまわりの解説は見つからなかったし、まだまだ発展途上でユーザー人口も少なそうですねぇ。けっこう便利なので、もっと普及してほしいです。

ではまた!

参考: https://answers.microsoft.com/ja-jp/msoffice/forum/all/office%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97/4215ea5d-1e11-4917-876e-0bd0c358ce04

1
3
0

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
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?