【发布时间】:2017-11-08 14:04:34
【问题描述】:
我正在开发离子应用程序。在服务器端有 CodeIgniter。存在 CORS 问题,因此无法登录。 在浏览器中它工作正常,但在模拟器和设备中出现此错误 -
响应状态为:0 对于 URL:null
搜索,尝试了很多,但找不到可行的解决方案。请检查下面的代码并帮助我解决问题。
ionic.config.json
"proxies": [
{
"path": "/login",
"proxyUrl": "http://www.mydomain.coo/members/login"
},
{
"path": "/update",
"proxyUrl": "http://www.mydomain.coo/members/update"
},
{
"path": "/register",
"proxyUrl": "http://www.mydomain.coo/members/register"
},
login.ts
login() {
this.showLoader('Authenticating...');
this.postData = { isApp: '1', key: 'login', email:this.email, password:this.password };
let data = JSON.stringify(this.postData);
this.auth.login( this.postData ).then((result) => {
this.loading.dismiss();
this.data = result;
if ( this.data.status == true )
{
localStorage.setItem('id', this.data.id);
this.navCtrl.setRoot(TabsPage);
}
else
{
this.showLoader('Invalid Credentials...');
this.loading.present();
setTimeout(() => {
this.loading.dismiss();
}, 2000);
}
}, (err) => {
this.loading.dismiss();
this.presentToast(err);
});
}
auth-service.ts
login(postData) {
return new Promise((resolve, reject) => {
let headers = new Headers( {
'Access-Control-Allow-Origin' : '*',
'Access-Control-Allow-Methods' : 'POST, GET, OPTIONS, PUT',
'Content-Type': 'application/json; charset=UTF-8',
'Accept': 'application/json'
});
this.http.post('/login', JSON.stringify(postData), {headers: headers})
.subscribe(res => {
resolve(res.json());
}, (err) => {
reject(err);
});
});
}
Codeigniter index.php 文件我有这个
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS");
header("Access-Control-Allow-Headers: X-PINGOTHER, Content-Type");
header("Access-Control-Max-Age: 86400");
【问题讨论】: