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错误,怎么办?看出错信息啊!!!任何问题解决关键都在于找到问题的原因和位置。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix