はい、とても久しぶりですね。DAFUさんです。
今年から私も大学生になったわけですが、大学の課題をいちいち見に行くのがめんどくさいのでChrome拡張で通知するようにしようとしました。
その時にCORSを回避してGETするために作ったのが元です。
CORSとは
CORSとは、Cross-Origin Resource Sharingの略で、セキュリティ機能の一つです。
これを設定すると、別ドメインからのデータの読みこみをコントロールすることが出来ます。
参考:MDN
コード
解説
簡単に言ってしまうとリファラを書き換えて同一オリジンからのリクエストに見せかけているわけですね。
普通はリファラを変えてもリクエストよりも後なのであまり意味がないのですが、AJAXの前に変えればリファラの偽装が出来るわけです。
ここで使っているのが、Object.definePropertyというメソッドです。
ここの引数にreferrerと指定することで、リファラを書き換えることが出来ます。
参考:MDN
使いどころは少ない気もしますが、簡単な小技としては割と重宝しそうです。
コメントを書く