【发布时间】:2017-08-02 23:12:56
【问题描述】:
我目前正在学习如何为 Firebase 使用新的 Cloud Functions,我遇到的问题是我无法访问通过 AJAX 请求编写的函数。我收到“无 'Access-Control-Allow-Origin'”错误。这是我写的函数的一个例子:
exports.test = functions.https.onRequest((request, response) => {
response.status(500).send({test: 'Testing functions'});
})
该函数位于此网址中: https://us-central1-fba-shipper-140ae.cloudfunctions.net/test
Firebase 文档建议在函数中添加 CORS 中间件,我已经尝试过,但它不适合我: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),一开始我完全错过了。
【问题讨论】:
-
也是文档中的示例here
-
我有一些函数可以与所提供的解决方案一起使用,但现在我正在尝试一个新函数,它基本上将打开的图形添加到我的 index.html 顶部并返回更新后的 index.html,但我不能让它工作:(继续获得 ACCESS-CONTROL--- 错误
-
像上面那样将传入的请求包装在 cors() 中是唯一对我有用的方法
-
您可以编辑您的“更新”以强调需要 cors 中间件吗?这将为一些人节省一些时间
标签: javascript firebase google-cloud-platform cors google-cloud-functions