Firebase云功能 - 发布请求 - 无访问控制 - 允许 - 来源

时间:2017-10-31 19:52:31

标签: javascript express firebase google-cloud-functions

我正在尝试将数据发布到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.

1 个答案:

答案 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')
})