【Javascript】CORSを回避してAJAX通信をする

  • 2020.04.16
  • Web
【Javascript】CORSを回避してAJAX通信をする

はい、とても久しぶりですね。DAFUさんです。

今年から私も大学生になったわけですが、大学の課題をいちいち見に行くのがめんどくさいのでChrome拡張で通知するようにしようとしました。

その時にCORSを回避してGETするために作ったのが元です。

CORSとは

CORSとは、Cross-Origin Resource Sharingの略で、セキュリティ機能の一つです。

これを設定すると、別ドメインからのデータの読みこみをコントロールすることが出来ます。

参考:MDN

コード

解説

簡単に言ってしまうとリファラを書き換えて同一オリジンからのリクエストに見せかけているわけですね。

普通はリファラを変えてもリクエストよりも後なのであまり意味がないのですが、AJAXの前に変えればリファラの偽装が出来るわけです。

ここで使っているのが、Object.definePropertyというメソッドです。

ここの引数にreferrerと指定することで、リファラを書き換えることが出来ます。

参考:MDN

使いどころは少ない気もしますが、簡単な小技としては割と重宝しそうです。