iPhone模拟器中的Ionic 3 CORS问题

iPhone模拟器中的Ionic 3 CORS问题,cors,cordova-plugins,ionic3,Cors,Cordova Plugins,Ionic3,我在iPhone模拟器版本SimulatorApp-829.6/xCode 9.0中遇到了我认为是CORS问题的问题 我构建了一个带有Cordova的ionic3应用程序,可以使用代理在浏览器中运行它。但是,当我在sim卡或手机上运行它时,它不会针对远程http呼叫进行身份验证 因此,我添加了Cordova调试器并调试到xCode控制台: 这是http错误对象: {u body:{“isTrusted”:true},“status”:0,“ok”:false,“statusText:”“head

我在iPhone模拟器版本SimulatorApp-829.6/xCode 9.0中遇到了我认为是CORS问题的问题

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

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

这是http错误对象:

{u 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','*');

返回此.http.get('http://myserver.com/api/v1/authenticate“,{headers:headers}).map(res=>res.json())我最近遇到了类似的问题。我的ionic应用程序已经运行了几个月没有出现任何问题,我突然开始在iOS上收到CORS错误

问题是我从
UIWebview
切换到使用
WKWebView

解释有关
WKWebView
的更多信息,以及为什么它比以前的版本好得多

它还提到了关于CORS的这一点:

UIWebview,或iOS中较旧的webview,实际上从未强制实施CORS,但WKWebView提供并没有禁用CORS的方法。要解决此问题,您需要正确实施CORS并添加以下条目:

来源:

如果这是不可能的(您没有API),一个解决方法是使用本机HTTP插件@ionic native/HTTP

因此,两种解决方案是:

  • 如果您拥有正在使用的api,请在其上启用CORS
  • 如果不能修改api,可以使用

  • 我用了第一个,一切又正常了。

    你能告诉我吗。“如果你不能修改api,你可以使用Ionic Native Http”,我的是一个只有8页的小应用程序;我的工作是什么change@Shamil我已经有一段时间没有用过爱奥尼亚了,所以我帮不了什么忙,但是我建议你按照“安装”和“使用”下面的说明来做。非常感谢。我的服务器端团队已准备好实施Cors。与实现本机http相比容易吗