无法在 Ionic 4 应用程序中绕过 CORS

Not able to bypass CORS in Ionic 4 application

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

每次我请求这个 URL 我都会在我的 safari 检查器中得到以下信息:

XMLHttpRequest cannot load http://10.5.5.9/gp/gpControl/status due to access control checks. Error: Uncaught (in promise): Response with status: 0 for URL: null Failed to load resource: Origin ionic://localhost is not allowed by Access-Control-Allow-Origin.

我一直在 运行使用 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-plugin-advanced-http

即可解决

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