【发布时间】:2019-11-25 15:41:39
【问题描述】:
我正在尝试将云功能整合到我的网络应用中。
不幸的是,我遇到了我正在努力处理的 CORS 错误。
似乎几乎所有关于 CORS 的文档都在使用 XMLHTTPRequests,有些正在使用 fetch api,但我找不到任何关于如何使用 firebase.functions.httpsCallabe()
客户端代码:
export function bla() {
const callable = firebase.functions().httpsCallable('helloWorld');
return callable().then(console.log);
}
整个云函数(在打字稿中):
import * as functions from 'firebase-functions';
const cors = require('cors')({ origin: true });
export const helloWorld = functions.https.onRequest((request, response) => {
cors(request, response, () => {
response.status(200).send("Hello from Firebase!");
});
});
这是触发我的 bla() 函数时 chrome 控制台输出的内容:
在 Firebase 控制台中,我收到一条消息,提示我正在使用标准计划,因此无法访问外部资源。不确定这是标准消息还是我的代码的实际问题。
【问题讨论】:
-
请注意,i.imgur.com/pHr9NQO.png 表示您的浏览器正在发出 CORS 预检 OPTIONS 请求,并且服务器正在响应该 OPTIONS 请求并出现 500 错误。 500 错误是您需要修复的根本问题。
-
您似乎没有正确配置服务器以接受 CORS。 enable-cors.org服务器需要响应带有访问控制头的选项调用
标签: javascript firebase google-cloud-functions preflight