【问题标题】:ionic 2 CSRF failed离子 2 CSRF 失败
【发布时间】:2018-01-01 08:19:46
【问题描述】:

我接受了 CSRF 失败错误;

加载资源失败:服务器响应状态为 403 (Forbidden)

响应 _body: "{"detail":"CSRF 失败:Referer 检查失败 - 没有Referer。"}" 标头:标头 好的:假的 状态:403 statusText:“禁止” 类型:2 网址:“https://deneme.com/api/v1.0/channels/

我的代码;

uyegiris()
{
  var veri,kullaniciveri;
  this.deneme=2;
   var headers = new Headers();
    headers.append('Accept', 'application/json');
    headers.append('Content-Type', 'application/x-www-form-urlencoded' );
    //headers.append('Authorization' , 'Basic '+ btoa(tok));
    let options = new RequestOptions({ headers: headers });

    let postParams = {
      username: this.user['usernameil'],
      password:this.user['password'],
    }

      this.http.post("https://deneme.com/api/v1.0/users/login/", postParams, options).timeout(2000)
      .subscribe(data => {
        veri = data['_body'];
        veri= veri.slice(1, -1);
        veri = veri.replace(/\\/g, "");
        veri = JSON.parse(veri);
        console.log(veri);
        if(veri.msg_err)
          {
         let alert = this.alertCtrl.create({
         title: 'Giriş Hatası',
         subTitle: veri.msg_err,
         buttons: ['Tamam']
        });
        alert.present();
        }
        else
           { 
            this.kanallistele();
           }
       }, error => {
        console.log(error);
        this.deneme=error;
      });
}

kanallistele()
{
 var veri;
    this.kanallardiv=true;
    this.uyegirisdiv=false;
    this.kanallistelebtn = false;
    this.kanallistelebtn2 = false;
    var headers = new Headers();
    headers.append('Accept', 'application/json');
    headers.append('Content-Type', 'application/json' );
    //headers.append('Authorization' , 'Basic '+ btoa(tok));
    let options = new RequestOptions({ headers: headers });

    let postParams = {
    token: "381f13d7056-ce5fe474919",
    user_id: "71",
    }
    var veris="channel_name_";
    this.http2.post("https://deneme.com/api/v1.0/channels/", postParams, options)
      .subscribe(data => {
        veri = data['_body'];
        console.log(veri);       
        veri= veri.slice(1, -1);
        veri = veri.replace(/\\/g, "");
        veri = JSON.parse(veri);
        for(var i = 0 ;;i++)
          {
              if(!veri.channel_list['channel_name_' + (i)])
                    break;   

              this.veriler.push({channelname: veri.channel_list['channel_name_' + (i)],channelid: veri.channel_list['channel_id_' + (i)]});              
          }
       }, error => {
        console.log(error);
        this.deneme=error;// Error getting the data
      });  
  }

【问题讨论】:

    标签: angularjs typescript ionic2 csrf


    【解决方案1】:

    这与 Ionic 无关。看起来您的服务器/后端/任何东西都需要一些 CSRF 令牌才能响应您的请求,而您没有附加它们。您应该联系您的后端团队,以便将缺少的令牌添加到您的请求中

    【讨论】:

    • 但我的项目在浏览器上没有给我错误,但我尝试在 android 设备上给我错误。
    • 您的浏览器很可能有一些 cookie 随请求自动发送并包含这些令牌。无论如何,事情都在您的后端 - 离子不能成为这里的原因
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2019-02-09
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多