我正在尝试将数据发布到Firebase云功能。我使用express.js和body-parser来接收请求。使用Insomnia(一个用于API调试的REST客户端),我没有问题但是有一个VueJS HTTP请求,比如
Vue.http.post("url", {private: false}, {
headers: {
'Access-Control-Allow-Origin': '*'
}
}).then(res => {
console.log(res);
});
我收到错误Failed to load *url*: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.
答案 0 :(得分:1)
由于您使用的是express
,因此您可以使用名为cors的程序包。基本上这个错误的意思是你应该允许客户通过说&#34来访问你的资源;嘿,我知道这个客户,我相信他,让他访问他需要的东西"。您可以通过以下方式(来自cors
文档)执行此操作:
var express = require('express')
var cors = require('cors')
var app = express()
app.use(cors())
app.get('/products/:id', function (req, res, next) {
res.json({msg: 'This is CORS-enabled for all origins!'})
})
app.listen(80, function () {
console.log('CORS-enabled web server listening on port 80')
})