小编Let*_*oll的帖子

iPhone Simulator中的Ionic 3 CORS问题

我得到了我认为是iPhone Simulator版本SimulatorApp-829.6 / xCode 9.0中的CORS问题

我构建了带有Cordova的ionic3应用,并可以使用代理在浏览器中运行它。但是当我在SIM卡或手机上运行它时,它不会针对远程http呼叫进行身份验证。

因此,我添加了Cordova调试器并调试到xCode控制台:

这是http错误对象:

{“ _body”:{“ isTrusted”:true},“ status”:0,“ ok”:false,“ statusText”:“”,“ headers”:{},“ type”:3,“ url”:null }

这是我在Ionic应用程序中执行的代码(可在浏览器中使用)

    let headers = new Headers();
    headers.append('Content-Type', 'application/json');
    headers.append('Authorization', 'Basic ' + this.base64Service.encode(id + ':' + pw));
    headers.append('Access-Control-Allow-Origin', '*');
    

    return this.http.get('http://myserver.com/api/v1/authenticate', {headers: headers}).map(res => res.json());
Run Code Online (Sandbox Code Playgroud)

我真的很困惑,因为有两件事:

1)我已经安装了Cordova白名单插件,并且在针对远程服务器之前取得了成功。不知道发生了什么

2)如果我使用Safari Developer> Simulator并连接到在模拟器中运行的应用程序,则会出现此错误:

Failed to load resource: Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin.

XMLHttpRequest cannot load http://myserver.com/api/v1/authenticate. Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin.
Run Code Online (Sandbox Code Playgroud)

如何在Sim或实际设备中获得CORS问题?我认为资源都是基于file://的。另外,为什么Cordova白名单插件不能解决此问题?

提前致谢。在这个上花了很多时间。

cors cordova-plugins ionic3

3
推荐指数
1
解决办法
5900
查看次数

标签 统计

cordova-plugins ×1

cors ×1

ionic3 ×1