我想做一個請求獲取或發布到我的 firebase 后端 api
這是我的要求
const verify = async (address) => {
const params = { address }
const { data } = await client.get('test', { params })
}
我的后端我正在使用 cors
const app = require('express')()
const cors = require('cors')
const options = {
origin: true,
methods: 'GET,POST,PUT,DELETE,OPTIONS,HEAD,PATCH',
preflightContinue: false,
optionsSuccessStatus: 204,
}
app.use(cors(options))
app.get('/test', (req, res) => {
console.log('console.log', req.body)
res.status(200).send('hello world!')
})
module.exports = {
Module: () => app,
}
我不知道會發生什么,但我在 cors 中遇到錯誤
從源“http://localhost:8080”訪問“https://...functions.net/test?address=AABB”處的 XMLHttpRequest 已被 CORS 策略阻止:否“Access-Control-Allow-Origin”請求的資源上存在標頭。
uj5u.com熱心網友回復:
我懷疑您需要插入運行 Vue 應用程式的 URL options.origin
或者是否options.origin: true將標題設定為'“Access-Control-Allow-Origin”:*'?
編輯:首先,您需要req.query.address訪問從 Vue 發送的地址查詢引數。
編輯:沒有設定你options的cors()我Access-Control-Allow-Origin: *從快遞得到回應頭。可能不想在生產中執行此操作,但將源設定為使用 API 的某個 URL。
const app = require('express')()
const cors = require('cors')
app.use(cors())
app.get('/test', (req, res) => {
console.log('console.log', req.query.address)
res.status(200).send(`The address is ${req.query.address || "not existing"}`)
})
app.listen(3000, () => console.log("Express running..."))

uj5u.com熱心網友回復:
我用這個。在 Stackoverflow 上找到這個解決方案:
//#region CORS - Area...
var whitelist = [
"http://127.0.0.1:3000",
"https://127.0.0.1:3000",
"https://localhost:3000",
"http://localhost:3000",
];
var corsOptions = {
origin: function (origin, callback) {
if (whitelist.indexOf(origin) !== -1 || !origin) {
callback(null, true);
} else {
console.log("Blocked-Origin:", origin);
callback(new Error("Not in CORS-Origin-List"));
}
},
methods: ["POST, DELETE, GET"],
optionsSuccessStatus: 200,
};
app.use(cors(corsOptions));
//#endregion CORS - Area...
并且不推薦使用此解決方案,但對于 Test ok...
app.use(
cors({
optionsSuccessStatus: 200,
credentials: true,
origin: "*",
methods: ["GET", "POST", "DELETE"],
})
);
注意:origin: "*",不是true
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/409784.html
標籤:
