在离子视图中的Cors问题

时间:2017-06-29 08:20:35

标签: ionic2

您好我已经在离子视图中部署了我的项目,我需要对远程服务器进行http调用。我已经实现了这样的代理

{
 "name": "MobileUI",
 "app_id": "608c237d",
 "type": "ionic-angular",
 "proxies": [
   {
    "path": "/Auth",
    "proxyUrl": "https://example.com/Auth/Authenticate",
     "rejectUnauthorized": false
    }
  ]
}

我按照这个

对提供者进行登录调用
  AuthenticateUser(username: string, password: string) {
var userNamePwd: any = {};
userNamePwd.username = username;
userNamePwd.password = password;
let body = JSON.stringify(userNamePwd);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.post('/Auth', body, options)
  .map((res) => {
    let data = this.extractData(res);
    this.storage.set('id_token', data[0].Token);
    this.sharedAuth.SetEntityData(data);
    return data;
  })
  .catch(this.handleError);
 }

在网络浏览器中测试时,登录效果非常好,但是当我在离子视图中上传应用程序时,我收到此错误response with status 0 for url null 我以http://blog.ionic.io/handling-cors-issues-in-ionic/中提到的方式实现了代理。 我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

问题在于,当您在离子视图应用中运行应用时,没有本地代理将请求转发到您的后端。所以你陷入了cors问题,因为本地webview在离子视图应用程序中强制执行严格的cors。

我希望离子团队提出修复方案。至于现在,据我所知,您应修改后端以允许所有来源,或使用Web服务器作为代理将您的请求转发到您的api服务器。