【问题标题】:ionic framework error - Response with status: 0 for URL: null离子框架错误 - 响应状态:0 对于 URL:null
【发布时间】: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");

【问题讨论】:

    标签: angular ionic-framework


    【解决方案1】:

    将 auth-service.ts 中的代码替换为

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

    来自您的 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'
      });
    

    【讨论】:

      【解决方案2】:

      第 1 步: 把它放在你的 php 代码之上 header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Headers: *');

      第 2 步: 创建一个 .htaccess 文件并在下面粘贴以下代码 <IfModule mod_headers.c> Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Headers "*" </IfModule>

      快乐编码,享受

      【讨论】:

        猜你喜欢
        • 2023-03-11
        • 2018-08-16
        • 2018-06-11
        • 2017-01-24
        • 2017-10-29
        • 1970-01-01
        • 1970-01-01
        • 2017-07-06
        • 1970-01-01
        相关资源
        最近更新 更多