调用云函数时对 CORS 预检选项的 500 错误响应。如何从我的网络应用程序调用云功能并符合 CORS 标准?
500 error response to CORS preflight OPTIONS when calling cloud function. How can I call a cloud function from my web-app and be CORS compliant?
我正在尝试将云功能整合到我的网络应用程序中。
不幸的是,我遇到了我正在努力处理的 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!");
});
});
这是 chrome 控制台在触发我的 bla()
函数时输出的内容:
在 Firebase 控制台中,我收到一条消息,指出我正在使用标准计划,因此我无法访问外部资源。不确定这是标准消息还是我的代码的实际问题。
您不能使用 Functions 客户端 SDK 调用在链接文档中声明的 HTTP type functions. You can only use the Functions client SDK to invoke callable type functions。
可调用函数使用 functions.https.onCall
声明,而 HTTP 函数使用 functions.https.onRequest
.
声明
如果你想调用一个普通的 HTTP 类型的函数,你应该为此使用一些 HTTP 客户端。
我正在尝试将云功能整合到我的网络应用程序中。
不幸的是,我遇到了我正在努力处理的 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!");
});
});
这是 chrome 控制台在触发我的 bla()
函数时输出的内容:
在 Firebase 控制台中,我收到一条消息,指出我正在使用标准计划,因此我无法访问外部资源。不确定这是标准消息还是我的代码的实际问题。
您不能使用 Functions 客户端 SDK 调用在链接文档中声明的 HTTP type functions. You can only use the Functions client SDK to invoke callable type functions。
可调用函数使用 functions.https.onCall
声明,而 HTTP 函数使用 functions.https.onRequest
.
如果你想调用一个普通的 HTTP 类型的函数,你应该为此使用一些 HTTP 客户端。