我正在嘗試訪問我使用 express.js 構建的 api 并托管在 dreamhost 上,但是每當我嘗試從另一個域訪問它時,我都會遇到 CORS 問題:“已被 CORS 策略阻止:對預檢請求的回應未通過訪問控制檢查:預檢請求不允許重定向。”
我曾嘗試使用 app.use(cors()) 無濟于事。我什至編輯了 .htaccess 檔案。
當我查看從我的 api 回傳的標頭時,沒有顯示 Access-Control-Allow-Origin 資訊的行。
快遞應用代碼:
const express = require('express');
const homeRouter= require('./routes/home.js');
const pmonboardingRouter= require('./routes/pmonboarding.js');
const resourceRouter= require('./routes/resource.js');
const userRouter= require('./routes/user.js');
const cors =require('cors');
// import helmet from 'helmet';
const app = express();
// app.use(helmet());
const port= process.env.SERVER_PORT || 3001;
app.use(express.json());
app.use(express.urlencoded({extended:true}))
app.use(cors({ origin: true }));
app.use('/resources',resourceRouter);
app.use('/pmonboarding',pmonboardingRouter);
app.use('/user',userRouter);
app.use('/',homeRouter);
.htaccess 檔案的代碼:
Header add Access-Control-Allow-Origin: "*"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
Header add Access-Control-Allow-Headers: "Content-Type"
前端訪問代碼:
fetch('<My api Domain>', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(data)
})

任何幫助將非常感激!謝謝。
uj5u.com熱心網友回復:
我不這么認為,錯誤看起來是 301。你可以直接用郵遞員 api 嘗試一次。
下面一個供CROS問題參考,
const cors = require('cors');
app.use(cors({
origin: 'https://www.domain.io'
}));
//or
app.use(cors({
origin: ['https://www.domain.io', 'https://www.google.com/']
}));
//or
app.use(cors({
origin: '*'
}));
//for origin with methods
app.use(cors({
methods: ['GET','POST','DELETE','UPDATE','PUT','PATCH'],
origin: '*'
}));
// maybe like this
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/503966.html
下一篇:我正在嘗試創建訂閱,但發生錯誤
