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

Yii2 Ajax Post 实例及常见错误修正的更多相关文章
- PHP 中使用ajax时一些常见错误总结整理
这篇文章主要介绍了PHP 中使用ajax时一些常见错误总结整理的相关资料,需要的朋友可以参考下 PHP作为后端时,前端js使用ajax技术进行相互信息传送时,经常会出错误,对于新手来说有些手足无措.总 ...
- Elasticsearch 集群和索引健康状态及常见错误说明
之前在IDC机房线上环境部署了一套ELK日志集中分析系统, 这里简单总结下ELK中Elasticsearch健康状态相关问题, Elasticsearch的索引状态和集群状态传达着不同的意思. 一. ...
- 微信jssdk常见错误及解决方法
调用config 接口的时候传入参数 debug: true 可以开启debug模式,页面会alert出错误信息.以下为常见错误及解决方法: invalid url domain当前页面所在域名与使用 ...
- centos linux 系统日常管理4 scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法 第十七节课
centos linux 系统日常管理4 scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法 第十七节课 rsync可以增量同步,scp不行 ...
- yii2:doajax(post)会报500错误
yii2:doajax(post)会报500错误:这是因为yii2开启了防御csrf的攻击机制,可去先去掉,在控制器里去掉:public $enableCsrfValidation = false , ...
- coreseek常见错误原因及解决方法
coreseek常见错误原因及解决方法 Coreseek 中文全文检索引擎 Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和 ...
- .Net常见错误
常见错误 #1: 把引用当做值来用,或者反过来 C++ 和其他很多语言的程序员,习惯了给变量赋值的时候,要么赋单纯的值,要么是现有对象的引用.然而,在C# 中,是值还是引用,是由写这个对象的程序员决定 ...
- 分数的加减法——C语言初学者代码中的常见错误与瑕疵(12)
前文链接:分数的加减法——C语言初学者代码中的常见错误与瑕疵(11) 重构 题目的修正 我抛弃了原题中“其中a, b, c, d是一个0-9的整数”这样的前提条件,因为这种限制毫无必要.只假设a, b ...
- 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,计算可以从中找到 ...
随机推荐
- wigs的理解和应用
1. 首先了解下,Web应用的本质,大体如下: 1.浏览器发送一个HTTP请求: 2.服务器收到请求,生成一个HTML文档: 3.服务器把HTML文档作为HTTP响应的Body发送给浏览器: 4.浏览 ...
- linux workqueue的名字长度小问题
在排查一个nvme的的workqueue的问题的时候,发现nvme的queue的进程名被截断了, [root@localhost caq]# ps -ef |grep -i nvme root : ? ...
- Traits技法
扮演"特性萃取机"角色,萃取各个迭代器的特性(迭代器的相应类型) 模板特例化:提供一份template定义式,而其本身仍为templatization 通过class templa ...
- 基于BCGP库的界面效果
- java常用类--与用户互动
运行java的参数: 主方法:public static void main(String[] args){}:为了让JVM可以自由调用main方法,使用public修饰,JVM通过类来调用main方 ...
- Hibernate (四)
1 懒加载 (感觉用处不是很大) 需要的时候加载,不需要的时候就不加载. 1.1 环境的搭建 hibernate.cfg.xml <?xml version='1.0' encoding='ut ...
- win10预览版无开始菜单解决方案
1.按下Win+R键打开“运行”程序,键入gpedit.msc 回车以打开本地组策略编辑器 2.调到图示位置将windows设置->安全设置->本地策略->安全选项->“用户账 ...
- Redis Crackit漏洞防护
Redis Crackit漏洞利用和防护 注意:本文只是阐述该漏洞的利用方式和如何预防.根据职业道德和<中华人民共和国计算机信息系统安全保护条例>,如果发现的别人的漏洞,千万不要轻易入侵, ...
- Eralng的常用数据结构
1.记录(record) 适用于小数据,并且用属性名方便查找 2.Key/Value 类型 a.属性列表 就是类似[{Key, Value}]的列表,可以通过proplists模块来处理这样的列表 当 ...
- 【Spring】HttpMessageConverter的作用及替换
相信使用过Spring的开发人员都用过@RequestBody.@ResponseBody注解,可以直接将输入解析成Json.将输出解析成Json,但HTTP 请求和响应是基于文本的,意味着浏览器和服 ...