我目前正在学习如何在Firebase中使用新的云函数,我遇到的问题是我无法访问我通过Ajax请求编写的函数.我收到"No‘Access-Control-Allow-Origin’"错误.以下是我编写的函数的示例:

exports.test = functions.https.onRequest((request, response) => {
  response.status(500).send({test: 'Testing functions'});
})

该函数位于以下url中:

Firebase docs建议在函数中添加CORS中间件,我已经try 过了,但它对我不起作用:https://firebase.google.com/docs/functions/http-events

我就是这样做的:

var cors = require('cors');    

exports.test = functions.https.onRequest((request, response) => {
   cors(request, response, () => {
     response.status(500).send({test: 'Testing functions'});
   })
})

我做错了什么?在这件事上如果能有任何帮助,我将不胜感激.

更新:

Doug Stevenson的答案很有帮助.添加({origin:true})修复了这个问题,我还不得不将response.status(500)改为response.status(200),一开始我完全忽略了这一点.

推荐答案

Firebase团队提供了两个sample functions,演示了CORS的使用:

第二个示例使用与您当前使用的cors不同的工作方式.

考虑这样导入,如样品中所示:

const cors = require('cors')({origin: true});

函数的一般形式如下:

exports.fn = functions.https.onRequest((req, res) => {
    cors(req, res, () => {
        // your function body here - use the provided req and res from cors
    })
});

Javascript相关问答推荐

JavaScript setSYS()是否有可能更早触发?

使用reaction创建可排序的表不起作用

回归函数不会迭代到foreach中的下一个元素

使用JavaScript更改json值顺序

如何从JavaScript中的公共方法调用私有方法?

如何在ReactJS中修复这种不需要的按钮行为?

为什么使用MAX_SAFE_INTEGER生成随机整数时数字分布不准确?

在JS中获取名字和姓氏的首字母

类型自定义lazy Promise. all

如何找出摆线表面上y与x相交的地方?

嵌套异步JavaScript(微任务和macrotask队列)

在react js中使用react—router—dom中的Link组件,分配的右侧不能被 destruct ''

给定一个凸多边形作为一组边,如何根据到最近边的距离填充里面的区域

如何从网站www.example.com获取表与Cheerio谷歌应用程序脚本

更新动态数据中对象或数组中的所有值字符串

将数组扩展到对象中

获取';无法解决导入和导入";slick-carousel/slick/slick-theme.css";';错误

WebSocketException:远程方在未完成关闭握手的情况下关闭了WebSocket连接.&#三十九岁;

在D3条形图中对具有相同X值的多条记录进行分组

无法使用npm install安装react-dom、react和next