2017-06-07 2 views
1

Ich arbeite an der ionischen App. Auf der Serverseite gibt es CodeIgniter. Es gibt ein CORS-Problem, aufgrund dessen die Anmeldung nicht funktioniert. In Browser funktioniert es gut, aber in Emulator und Gerät gibt es diesen Fehler -ionic Framework-Fehler - Antwort mit Status: 0 für URL: null

Antwort mit Status: 0 für URL: null

gesucht, viel versucht, aber nicht eine praktikable Lösung gefunden. Bitte überprüfen Sie die folgenden Codes und helfen Sie mir, das Problem zu lösen.

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 Ich habe diese

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"); 

Antwort

0

den Code Ersetzen von Auth-service.ts mit

let headers = new Headers(); 
    headers.append('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 

von Ihrem Auth-service.ts

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' 
    }); 
Verwandte Themen