🚀

VS Code + Live Serverで開発中に、CORS対応されてないAPIを呼び出す際に役立つproxy機能

2024/07/01に公開

どんな時に使うのか?

手軽にWebサーバーと立てるには、VS Code の機能拡張であるLive Serverが便利です。

JavaScriptからfetch()を使ってWebAPIを呼び出すケースは頻繁にありますが、API側がCORS対応していない場合、ブラウザーがAPI呼び出しを弾いてしまいます。
例えばAPI側がPython等のコードから呼び出すことを想定していて、ブラウザからの呼び出しを想定していないケースで起こります。 (今回の場合、VS Code + AI Toolkit で立てたWebAPIを利用する際に発生しました)

本番サービスではリバースプロキシや中継サーバーを挟んで対処することになりますが、開発環境では手軽に済ませたいです。そんな時に、Live ServerのProxy機能が役に立ちます。

Proxy機能の概要

今回の用途では、次のようにクライアント(JavaScriptのコード)とサーバー(WebAPI)の、間にLiveServerが入って通信の中継を行います。それによってCORSが発生していないようにブラウザには見えるようになります。

proxy_flow

Live Server の設定

機能拡張の歯車マークから、「機能拡張の設定」を開きます。

setting

設定の中から、Live Server > Settings Proxy を探し、詳細を設定します。

proxy

  • enable: true (proxy機能を有効にする場合)
  • baseUri: LiveServerのWebサーバー上の相対uri
  • proxyUri: 転送先のuri

ポートがデフォルトの5500のままの場合、この図の例では次のようにLiveServerを経由してアクセスすることが出来ます。

  • ブラウザーのJS → http://localhost:5500/searchapihttps://api.example.com/search

参考

Discussion