当前位置: 首页 > 知识库问答 >
问题:

如何解决Ionic Angular应用程序中的CORS策略问题?

水恩
2023-03-14

我试图在我的Ionic Angular应用程序中执行以下函数,cloudFunctionUrl是我在firebase项目中的一个云函数:

import { HttpClient } from '@angular/common/http';
private http: HttpClient

like(post) {
this.http.post('cloudFunctionUrl', JSON.stringify(body), {
      responseType: 'text'
    }).subscribe((data) => {
      console.log(data);
    }, (error) => {
      console.log(error);
    });
}

为了解决CORS问题,我安装了允许CORS:Access-Control-Allow-Origin chrome插件。以下是白名单域的列表:

    null

我遇到了两个问题:

    null

有人能告诉我怎么解决这件事吗?

我也尝试将下面的头添加到请求中,但错误仍在出现:

let headers = new HttpHeaders({
      'Access-Control-Allow-Origin': '*'
    });
    this.http.post('cloudFunctionUrl', JSON.stringify(body), {
      headers: headers,
      responseType: 'text'
    }

共有1个答案

姜弘化
2023-03-14

您正在尝试从Ionic Angular应用程序中执行CloudFunctionURL(云函数)。

我还尝试将下面的头添加到请求中,但错误仍然出现

你必须在你的云功能中添加石楠,而不是在Angular应用中。你的Angular App将调用该函数,你的函数将返回所需的头,允许你的App从云函数访问数据。

let headers = new HttpHeaders({
      'Access-Control-Allow-Origin': '*'
    });

/**
 * HTTP function that supports CORS requests.
 *
 * @param {Object} req Cloud Function request context.
 * @param {Object} res Cloud Function response context.
 */
exports.corsEnabledFunction = (req, res) => {
  // Set CORS headers for preflight requests
  // Allows GETs from any origin with the Content-Type header
  // and caches preflight response for 3600s

  res.set('Access-Control-Allow-Origin', '*');

  if (req.method === 'OPTIONS') {
    // Send response to OPTIONS requests
    res.set('Access-Control-Allow-Methods', 'GET');
    res.set('Access-Control-Allow-Headers', 'Content-Type');
    res.set('Access-Control-Max-Age', '3600');
    res.status(204).send('');
  } else {
    res.send('Hello World!');
  }
};

处理CORS请求

 类似资料:
  • 嗨,我在我的react应用程序中使用axios模块,我使用像这样的api POST方法

  • 我试图生成一个简单的axios请求,如下所示(我正在使用vue.js): 但我得到以下错误: 我已经尝试过添加下面的头,但仍然不起作用 但是如果我尝试通过浏览器发出请求(简单地通过复制和粘贴url),一切都很好。 有人知道怎么帮我吗?非常感谢!

  • 我了解了Firebase托管的标头配置,所以我这样做了: 在app中,在didChangeDependencies中有一个简单的firebase初始化,带有所需的数据。然后firebase auth . instance . signinwithemailandpassword(...)关于index.html的一段关于火垒的话: 我在Chrome中测试过很多次,总是失败。只有在localhost

  • 我正在构建一个供iOS/Android应用程序使用的API。该应用程序使用JSON Web Token来验证用户。我在尝试从本机应用程序与API对话时遇到了CORS问题。所以我为所有来源添加了CORS头(只在以< code>/api/开头的URL上)。它现在工作正常,但我想知道我所做的是否不是一个潜在的漏洞? 我应该允许所有的起源吗?如果API要被原生应用请求,我有办法提前知道原生主机吗? 我挺迷

  • 我有这个代码块,我正在测试,看看如果点击它的按钮,它是否会发送推文。 然而,每次我点击按钮,我都会得到这个确切的错误 我曾尝试在网上研究如何修复或解决它,但我认为我找到的解决方案不适用于我的问题。例如,此post访问从源站获取http://localhost:3000“已经被CORS政策阻止,他说要将模式设置为无CORS,但我认为这不适用于我的问题,因为我没有使用CORS发布这条推文。这是在nod

  • 我尝试用创建react app。它给了我以下错误: