Contents

CORS實作可能要注意的事情

Contents

雖然平常沒有使用 CORS
但是之前有嘗試了解 CORS 流程原理
其實瀏覽器會先送 OPTIONS 封包做確認
有做跨域 header 東西,就會傳送資訊
今天突然想到傳送兩次
不是會做兩次程式東西
我稍微爬了一下文章
原來我想的問題真的是有這個問題

看到這篇CORS 跨域原理浅析 - 知乎 備份圖
裡面有提到很多很細的內容
我自己也有用簡單 PHP 測試

1
2
3
4
5
6
7
8
<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: *");
echo 'work!' . PHP_EOL;
$fp = fopen('test.txt','a+');
fwrite($fp,'1'. PHP_EOL);
fclose($fp);
echo 'finial' . PHP_EOL;

簡單用php -s 0.0.0.0:8888就可以啟動 php 簡易 server
在隨便網頁開啟開發者工具,可以fetch('http://localhost:8888/test.php')
可以看test.txt有幾個 1
就知道執行幾次

雖然平常沒甚麼機會使用 CORS,但是還是紀錄這個容易忽略的事情
話說 Laravel 好像也要注意怎麼修改

相關連結: