Firebase 函数"httpsCallable"本地主机测试 CORS 错误



服务器代码

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.hello = functions.https.onCall((data, context) => {
console.log(data.text);
return 123;
});

客户端代码

const myFunc = firebase.functions().httpsCallable('hello');
myFunc({text: 'world'}).then((rslt)=>{
console.log('rslt:', rslt);
});

但这是行不通的。我在客户端浏览器控制台收到错误消息。

从原点访问"https://===skip=/hello"'http://localhost:5000'已被CORS策略阻止:对的响应飞行前请求未通过访问控制检查:重定向未通过允许飞行前请求。

如何解决此问题?我没有在谷歌指南文档中找到解决方案。

我看到评论并添加内容

查询未到达服务器。

如果我在函数部署后尝试,它会正常工作。

但它不会显示在本地控制台上,而是显示在firebase控制台上。

如何拨打本地服务器电话?

每次测试函数时都要进行部署,这太疯狂了。

从给定的代码中很难判断您的请求违反跨来源资源共享的原因。读一读这件事,弄清楚你在HTTP请求中包含了什么(无论是否有意(导致了它。也许是头?

同时,您可以使用require("cors"):在Firebase函数中启用CORS

const cors = require("cors")({origin: true});
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.hello = functions.https.onCall((data, context) => {
cors(data, context, () => {
console.log(data.text);
res.send("123");
}
});

关于Firebase函数的本地测试,您可以使用以下命令:

firebase serve --only functions


Firebase主机/功能的本地测试

在Firebase函数中启用CORS。

相关内容

  • 没有找到相关文章

最新更新