又遇上了strict-origin-when-cross-origin

不適用所有人,但我數個project都解決了

我大部分project都是把網站跟附件/圖片分2個server來存放東西

的確Chrome在某個版本,大家都說是Chrome85 開始,對於跨站上傳有很多影響

有些說strict-origin-when-cross-origin 不行,就在自己頁面加一句 <meta name="referrer" content="no-referrer-when-downgrade" /> 甚至有些說,如果你用nginx 要去改configs

我通通都試過,但最終我卻試試不如在目標網站(你就當是附件/圖片server,接收端)把header寫得更詳細一點

很多年前,我是這樣的

header("Access-Control-Allow-Origin: *");

json 開始流行,我改成這樣

header('Content-Type: application/json; charset=utf-8');
header("Access-Control-Allow-Origin: *");

API開始流行了,接著又改成

header('Content-Type: application/json; charset=utf-8');
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: PUT, GET, POST");

現在還是不行,我試了試...再加一句

header("Access-Control-Allow-Headers: *");

就馬上成功了,當然我都是因為在測試中,所以我直接寫成*,大家在真正使用的建議還是按自己的需要規範寫

我相信幫不了多少人,只能幫到我自己下次回來copy,因為也有很多人表示改成no-referrer-when-downgrade 或改nginx的configs 是幫助的

但剛好對我而言是沒有幫助,所以在此分享一下

或者有些問題不必研究的太深入?可能只是基礎數值我們沒寫清楚而已?