【问题标题】:Not able to bypass CORS in Ionic 4 application在 Ionic 4 应用程序中无法绕过 CORS
【发布时间】:2019-09-23 12:18:21
【问题描述】:

我正在尝试使用 this GitHub project 控制我的 GoPro Fusion。每当我运行POST 请求时,我都可以控制它,但现在我试图通过运行GET 请求来监听http://10.5.5.9/gp/gpControl/status 上的状态变化。

每次我请求此 URL 时,我都会在我的 safari 检查器中获得以下信息:

由于访问控制检查,XMLHttpRequest 无法加载 http://10.5.5.9/gp/gpControl/status。 错误:未捕获(承诺中):响应状态:0 对于 URL:null 加载资源失败:Access-Control-Allow-Origin 不允许 Origin ionic://localhost。

我一直在使用ionic cordova run ios -l -c 运行我的应用程序,并尝试在ionic.config.json 中设置代理:

"proxies": [
  {
    "path": "/gp/gpControl",
    "proxyUrl": "http://10.5.5.9"
  }
]

但这不起作用,我反而认为由于代理不起作用,我应该尝试在没有实时重新加载服务器的情况下安装它,但我仍然得到完全相同的错误。

如果我在移动浏览器中访问 url,它会很好地加载 json,只有当我尝试在其上运行 GET 时,它才会失败并出现 2 个 cors 错误。

我实际运行GET 的代码如下所示:

constructor(
  private http: Http
) {
  setInterval(() => {
    this.get('http://10.5.5.9/gp/gpControl/status').then(a => {
      console.log(a);
    });
  }, 1500);
}

public get(path, params = {}): Promise<any> {
  return this.http.get(this.baseUrl + path, params).toPromise();
}

我已经解决这个问题超过 12 个小时了,完全不知道接下来要尝试什么,所以非常感谢任何帮助。

【问题讨论】:

    标签: cordova http ionic-framework cors ionic4


    【解决方案1】:

    只需使用cordova-plugin-advanced-http即可解决

    在标准 Swift 项目上使用 AngularFire 进行测试并且没有任何问题后,我安装了上述插件并且所有请求都按预期工作。

    【讨论】:

      猜你喜欢
      • 2014-06-06
      • 2019-02-07
      • 1970-01-01
      • 1970-01-01
      • 2019-05-01
      • 2019-11-25
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      相关资源
      最近更新 更多