2022/1/18

CORS : Cross Origin Resource Sharing. server & browser

這個是為了讓提供服務的 server,限制存取服務來源的協定。
讓提供服務的 server 決定能不能讓別的 site 存取自己的服務。
這格功能要靠自己和 browser 一起完成。

舉例來說,如果你不讓其他 site 存取你的服務,在 response 時,header 就不要加上 "Access-Control-Allow-Origin" 這一條。
其他一樣回覆。

當 browser 看到的時候,就會幫忙檢查提出申請跟回覆得是不是同一個 site,如果不是,就找找服務 site 回覆的內容有沒有 "Access-Control-Allow-Origin",
如果沒有,就在 browser 頁面顯示 error。讓這個請求失敗。

所以,要是 browser 不支援這個功能,那就會把服務器回覆的內容,正確顯示出來,就好像沒那回事一樣。
chome 可以模你這種browser:
google-chrome --disable-web-security --user-data-dir=./aaa
用這幾個 option 啟動,就會忽略這格檢查。

兒服務企要提供服務的話,就要加上 "Access-Control-Allow-Origin=*" 在回覆的 header

以 nodejs 的 http-server 為例,在啟動得時候,加上 --cors 就可以在回覆的時候加上這個。

沒有留言:

張貼留言