• Yii2 Ajax Post 实例及常见错误修正


    先贴下我的代码:

    signup.js
    $('.reg_verify_pic').click(function(){ var csrfToken = $('meta[name="_csrf-Token"]').attr("content"); var mobileNum = $('#signupform-mobile').val(); console.log(mobileNum); $.ajax({ url:"index.php?r=sms/sms", type:"POST", data:{phone:mobileNum,_csrf:csrfToken}, dataType:"json", success:function(data){ console.log(data); }, error:function(er){ console.log('错误'); } })
    SmsController 
    public $enableCsrfValidation = false ;

    public function actionSms() { if(Yii::$app->request->isAjax) { $data = Yii::$app->request->post(); $phone= explode(":", $data['phone']); $phone = $phone[0]; }
    $code = rand(100000,999999); $c = new TopClient; $c->appkey = 'XXXXXXXX'; $c->secretKey = 'XXXXXXXXXXXXXXXXXXXX'; $req = new AlibabaAliqinFcSmsNumSendRequest; $req->setExtend(""); $req->setSmsType("normal"); $req->setSmsFreeSignName("XXXX"); $req->setSmsParam("{ "code":"$code",product:'XX'}"); $req->setRecNum($phone); $req->setSmsTemplateCode("SMS_XXXXXXX"); $resp = $c->execute($req); //var_dump($resp); if($resp){ return json_encode($resp); } }

     Yii2可以跟Ajax协作轻松完成我们想要的任何效果。但是,对于使用不熟练的开发者仍然会遇到很多问题。

    FIRST,400错误:出现的原因在于csrf问题。

    解决办法:1,2,3作用等同,只采用一种即可。

    1、接口的控制器中添加:

      public $enableCsrfValidation = false ;

    2、接口的控制器中添加:

      public function beforeAction($action){
              $this->enableCsrfValidation = false;
              return parent::beforeAction($action);
          }

    3、接口的控制器中添加:

      public function  init{
              $this->enableCsrfValidation = false;
          }

    扩展:

    1、frontend或者backend局部开启

      在前台或者后台的配置main.php文件中:

      request => [
        'enableCookieValidation' => false,
      ]

    2、全局开启

    在common/config/main.php

      request => [
        'enableCookieValidation' => false,
      ]

     按照上面的方法,配置完成之后出现了500错误,怎么办?看出错信息啊!!!任何问题解决关键都在于找到问题的原因和位置。

  • 相关阅读:
    js中实现继承的几种方式
    js中prototype,__proto__,constructor之间的关系
    圣杯布局
    BFC详解
    Altium制作DC002的PCB封装和3D模型
    直流供电电路中,关于电源并联二极管、电容作用的思考与总结
    AltiumDesigner17快捷键
    AltiumDesigner17学习指南
    AltiumDesigner元器件搜索中英文对照
    智慧树自动刷课脚本
  • 原文地址:https://www.cnblogs.com/peteremperor/p/6834860.html
Copyright © 2020-2023  润新知