3 回答

TA貢獻1812條經(jīng)驗 獲得超5個贊
此外,對于可能對服務(wù)器數(shù)據(jù)造成副作用的 HTTP 請求方法(特別是對于GET 以外的 HTTP 方法,或者對于某些 MIME 類型的 POST 使用),規(guī)范要求瀏覽器“預(yù)檢”請求,請求支持的方法使用 HTTP OPTIONS 請求方法從服務(wù)器發(fā)送,然后,在服務(wù)器“批準(zhǔn)”后,使用實際 HTTP 請求方法發(fā)送實際請求。
所以你必須回答預(yù)檢請求:
app.options("*", (req, res) => { res.status(200).send("Preflight request allowed"); });
在此處閱讀有關(guān)預(yù)檢請求的更多信息。

TA貢獻1794條經(jīng)驗 獲得超8個贊
您看到的錯誤很可能No 'Access-Control-Allow-Origin' header is present
來自預(yù)檢 OPTIONS 請求,該請求很可能甚至沒有到達您的快速后端,而是由前端的網(wǎng)絡(luò)服務(wù)器處理。
要么安排 OPTIONS 請求也被中繼到您的 web 服務(wù)器配置中的 express 后端,要么指示 web 服務(wù)器使用所需的標(biāo)頭對其進行響應(yīng)。
檢查這些:
https://talk.plesk.com/threads/iis-cors-configuration-problem-for-node-js-backend.355677/

TA貢獻1873條經(jīng)驗 獲得超9個贊
這應(yīng)該可行,我使用了這個 CORS 配置
app.use(function(req,res,next){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Methods", "GET, PUT, POST, DELETE, PATCH");
res.header("Access-Control-Allow-Headers", "Accept, Content-Type, Authorization, X-Requested-With");
next();
});
添加回答
舉報