先贴下我的代码:

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

Yii2 Ajax Post 实例及常见错误修正的更多相关文章

  1. PHP 中使用ajax时一些常见错误总结整理

    这篇文章主要介绍了PHP 中使用ajax时一些常见错误总结整理的相关资料,需要的朋友可以参考下 PHP作为后端时,前端js使用ajax技术进行相互信息传送时,经常会出错误,对于新手来说有些手足无措.总 ...

  2. Elasticsearch 集群和索引健康状态及常见错误说明

    之前在IDC机房线上环境部署了一套ELK日志集中分析系统, 这里简单总结下ELK中Elasticsearch健康状态相关问题, Elasticsearch的索引状态和集群状态传达着不同的意思. 一.  ...

  3. 微信jssdk常见错误及解决方法

    调用config 接口的时候传入参数 debug: true 可以开启debug模式,页面会alert出错误信息.以下为常见错误及解决方法: invalid url domain当前页面所在域名与使用 ...

  4. centos linux 系统日常管理4 scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法 第十七节课

    centos linux 系统日常管理4  scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法  第十七节课 rsync可以增量同步,scp不行 ...

  5. yii2:doajax(post)会报500错误

    yii2:doajax(post)会报500错误:这是因为yii2开启了防御csrf的攻击机制,可去先去掉,在控制器里去掉:public $enableCsrfValidation = false , ...

  6. coreseek常见错误原因及解决方法

    coreseek常见错误原因及解决方法 Coreseek 中文全文检索引擎 Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和 ...

  7. .Net常见错误

    常见错误 #1: 把引用当做值来用,或者反过来 C++ 和其他很多语言的程序员,习惯了给变量赋值的时候,要么赋单纯的值,要么是现有对象的引用.然而,在C# 中,是值还是引用,是由写这个对象的程序员决定 ...

  8. 分数的加减法——C语言初学者代码中的常见错误与瑕疵(12)

    前文链接:分数的加减法——C语言初学者代码中的常见错误与瑕疵(11) 重构 题目的修正 我抛弃了原题中“其中a, b, c, d是一个0-9的整数”这样的前提条件,因为这种限制毫无必要.只假设a, b ...

  9. C语言初学者代码中的常见错误与瑕疵(7)

    问题: 矩形的个数 在一个3*2的矩形中,可以找到6个1*1的矩形,4个2*1的矩形3个1*2的矩形,2个2*2的矩形,2个3*1的矩形和1个3*2的矩形,总共18个矩形.给出A,B,计算可以从中找到 ...

随机推荐

  1. python_协程方式操作数据库

    # !/usr/bin/python3 # -*- coding: utf-8 -*- import requests import gevent import pymysql from gevent ...

  2. linkinFrame--web应用举例--准备工作

    OK,前面的博客我们已经搭好了linkinFrame的项目结构,现在我们这里添加一个简单的web应用,在编写此web应用的过程中我们来一步一步的搭好自己的框架. 现在开始,这里举一个例子,一个客户的C ...

  3. WebSphere--定制配置

    本节介绍如何启动和使用 WebSphere应用服务器的管理器(一个图形界面)为 Servlet 活动和 WebSphere应用服务器的组件定制基本设置参数.    1.启动 WebSphere应用服务 ...

  4. 基于jsmpeg库下使用ffmpeg创建视频流连接websocket中继器传输视频并播放

    这个功能的基本工作是这样的: 1.使用node运行jsmpeg库下的websocket-relay.js文件,这个文件的作用是创建一个websocket视频传输中继器 2.运行ffmpeg,将输出发送 ...

  5. SQL模板资源管理器,你用了吗?

    SQL Server Management Studio 有个模板资源管理器,不知你用过没有?使用模板创建脚本.自定义模板等功能能大大提高你的工作效率,如果没有尝试过,赶紧去试试吧.很多时候,我们习惯 ...

  6. maven将本地jar包导入本地仓库

    从maven中央仓库下载下来的jar包手动导入本地库,如下图 以下其中maven的dependency <dependency> <groupId>org.molgenis&l ...

  7. PHP定义字符串的四种方式

    1.简介 在PHP中这门语言中,因为是弱类型语言,因此使用变量时不需提前定义即可使用. 我们在使用php进行开发的时候,大多数使用双引号.单引号进行定义字符串.既然有这两种方式,那么他们之间肯定是有区 ...

  8. ABP框架源码学习之修改默认数据库表前缀或表名称

    ABP框架源码学习之修改默认数据库表前缀或表名称 1,源码 namespace Abp.Zero.EntityFramework { /// <summary> /// Extension ...

  9. 树莓派小车By 树莓派爱好者ITJoker(通过C socket通信实现树莓派视频小车)(二)

    前面的方法可以参照(一)来配置GPIO口. 下面是代码...仅供参考,转载请注明出处. 1.  先输入以下指令,再复制代码,Ctrl+X  输入Y  回车  保存. sudo nano start.c ...

  10. javase学习小结二

    三角函数方法 Math.sin(radians):Math.sin(Math.PI/6)=0.5 Math.cos(radians):Math.cos(Math.PI/3)=0.5 Math.tan( ...