我知道我們無法訪問具有我們的不同域的API。但是,我看到很多人在安裝cors
模塊中明確使用的API,然後使用它像這樣:app.use(cors())做什麼?
app.use(cors());
這是什麼實際上做?該功能如何在服務器上啓用cors
?
我知道我們無法訪問具有我們的不同域的API。但是,我看到很多人在安裝cors
模塊中明確使用的API,然後使用它像這樣:app.use(cors())做什麼?
app.use(cors());
這是什麼實際上做?該功能如何在服務器上啓用cors
?
正如你所說的,它使CORS
(跨域資源共享)。爲了讓您的服務器可以被其他來源(域)訪問。
調用use(cors())
將使express server
,以迴應預檢要求。
一個預檢請求基本上是一個OPTION
在發送實際請求之前發送給服務器的請求,以便詢問服務器接受哪個來源和哪個請求選項。
所以CORS
基本上是服務器發送給瀏覽器的一組頭文件。 調用cors()
沒有額外的信息將設置以下缺省值:
{
"origin": "*",
"methods": "GET,HEAD,PUT,PATCH,POST,DELETE",
"preflightContinue": false,
"optionsSuccessStatus": 204
}
這些被翻譯成這些標題:
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,HEAD,PUT,PATCH,POST,DELETE
Status Code: 204
這是什麼做的基本上是讓您的服務器訪問到該請求的任何域資源從您的服務器通過瀏覽器。
,您可以檢查所有的快遞cors
配置在這裏:https://github.com/expressjs/cors
你也可以閱讀更多關於瀏覽器cors
這裏: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
https://github.com/expressjs/cors – Li357
它有可能使[ CORS(https://en.wikipedia.org/wiki/Cross-origin_resource_sharing)? – Bergi
好的,但要訪問其他API或被某人訪問?只要聲明這一行,我可以訪問網絡上的其他API? –