【问题标题】:How to solve CORS error firebase cloud function? [closed]如何解决CORS错误firebase云功能? [关闭]
【发布时间】:2020-04-27 23:12:14
【问题描述】:

如何解决 CORS 错误?我在测试非常简单的功能时遇到了 CORS 错误,请帮助我

         const functions = require('firebase-functions');
         const cors = require('cors')({ origin: true });
         import * as admin from 'firebase-admin';
         admin.initializeApp();

          exports.test = functions.https.onRequest((req, res) => {
            res.set('Access-Control-Allow-Origin', '*');
            res.set('Access-Control-Allow-Credentials', 'true');
            res.send("hello!!");
           });

          //on calling in .js file

           var test = firebase.functions().httpsCallable('test');
           test().then(function(result) {});

【问题讨论】:

  • request 中设置 Access-Control-... 标头没有任何作用,因为它们是从目标服务器接收的 response 标头。

标签: javascript cors google-cloud-functions


【解决方案1】:

我尝试从不同的外部域调用 API 和从云函数调用 API。他们对我来说工作得非常好。

如果你能分享一些代码实例,我会验证的。

编辑:

exports.fetchClientToken = functions.https.onRequest(
async (request, response) => {
const clientToken = await fetch("https://**/api/Token", {
  method: "POST",
  headers: {
    "Content-Type": "application/json"
  },
  body: "Username=*&Password=*&grant_type=password"
 });
 let tokenResponse = await clientToken.json();
 response.send(tokenResponse);
});

我称它为,

 const firebaseTokenMethod = await fetch("https://us-central1-*-1106.cloudfunctions.net/fetchClientToken",
 {
   method: "POST",
   headers: {
     "Content-Type": "application/json",
   }
 });

let token = await firebaseTokenMethod.json();

它对我来说很好用!!我不需要任何导入 CORS 等等。

【讨论】:

  • 我已经在测试非常简单的函数时遇到了 CORS 错误,请参阅上面的代码
  • 我已经编辑了我的答案看看
  • 非常感谢!我挣扎了几个小时,我发现“fetch() is not defined”的错误,我不得不 npm install fetch --save 真是浪费时间!但是谢谢男人
猜你喜欢
  • 2021-01-25
  • 2018-05-15
  • 2020-03-27
  • 2020-01-22
  • 1970-01-01
  • 2020-10-30
  • 2020-08-25
  • 2018-08-27
  • 2021-03-05
相关资源
最近更新 更多