zoukankan      html  css  js  c++  java
  • 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错误,怎么办?看出错信息啊!!!任何问题解决关键都在于找到问题的原因和位置。

  • 相关阅读:
    MySQL 三节点企业版
    Raft 一致性算法论文译文 JAVA
    MySQL EXPLAIN 命令详解学习
    MySQL 5.7.17 Group Replication 初始
    JAVA 线程池以及其他
    什么是IIS并发连接数
    CUDA
    各种学习手册在线
    弱电系统标准CAD图例识图讲解
    ACM---算法
  • 原文地址:https://www.cnblogs.com/peteremperor/p/6834860.html
Copyright © 2011-2022 走看看