yii2 ajax post设置csrf

由于yii2的csrf机制,如果是自己写ajax post提交方式,会提示提交数据验证错误,有两种解决方法:

1.关于controller里面的csrf验证

public $enableCsrfValidation = false;

2.根据Yii::$app获取csrftoken;

$csrfparam = json_encode(array(Yii::$app->request->csrfParam=>Yii::$app->request->getCsrfToken()));

时间: 2024-08-01 09:37:38

yii2 ajax post设置csrf的相关文章

Jquery Ajax 异步设置Table中某列的值

可根据table中某列中的ID去改变某列的值! JS: 1 $(document).ready(function () { 2 setTimeout(GetDate, 1000); 3 4 }); 5 6 function GetDate() { 7 $("#tbData tbody").find("tr").each(function () { 8 var prjectBalanceObj = $(this).find("td:eq(3)");

yii2多语言设置

yii2的多语言切换功能 1.页面添加语言切换按钮,如下图: 代码如下: <ul>       <li>           <a href="javascript:;" onclick="changeLanguage('en_US');">               <span><?php echo \Yii::t('app','English')?></span>           &l

ASP.NET MVC ajax提交 防止CSRF攻击

//在View中 <script type="text/javascript"> @functions{ public string ToKenHeaderValue() { string cookieToken,fromToken; AntiForgery.GetTokens(null,out cookieToken,out fromToken); return cookieToken+":"+fromToken; }} $function({ ...

jquery ajax 超时设置

自:jquery ajax超时设置 var ajaxTimeoutTest = $.ajax({ url:'',  //请求的URL timeout : 1000, //超时时间设置,单位毫秒 type : 'get',  //请求方式,get或post data :{},  //请求所传参数,json格式 dataType:'json',//返回的数据格式 success:function(data){ //请求成功的回调函数 alert("成功"); }, complete : f

Jquery ajax参数设置(转)

参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET".注意:其它 HTTP 请求方法,如 PUT 和 Delete 也可以使用,但仅部分浏览器支持. timeout Number 设置请求超时时间(毫秒).此设置将覆盖全局设置. async Boolean (默认: true) 默认设

【一点经验分享】Yii2 - ajax 和 client side混合检验

之前yii2的自定义检验需要使用到ajax来触发服务器端自定义代码的检验功能,后来发现整个表单都使用ajax的话有很大的延迟. 思考了一下正常php表单的解决方案,最好的方法就是一部分表单元素使用client-side检验,需要服务器端的再使用ajax,例如email或者用户名是否已被其他人注册了.代码如下: <?php $form = ActiveForm::begin([ 'id' => 'reg-form', ]); ?> <?= $form->field($model

yii2表单提交CSRF验证

Yii2表单提交默认需要验证CSRF,如果CSRF验证不通过,则表单提交失败,解决方法如下: 第一种解决办法是关闭Csrf public $enableCsrfValidation = false; 第二种解决办法是在form表单中加入隐藏域(如果是高级版的name值分前后台区分) <input type="text" name="_csrf-frontend" value="<?= Yii::$app->request->csrf

django中给ajax提交加上csrf

在html中的script标签下插入下面代码 在html文档加载时候运行下面代码,并且使用$.ajaxSetup设置ajax每次调用时候传入的数据,$.ajaxSetup进行默认的设置,只需要设置一次,每次ajax调用都会使用. 注意,以下代码使用了jquery,jquery.cookies.js 库.在head部分引用这些库,才能使得正常运行.另外需注意在某些特别情况下django并没有将csrftoken设置到cookie里面.那么这代码就失去了作用. $(document).ready(

jQuery中ajax超时设置

var ajaxTimeoutTest = $.ajax({ url: '', timeout: 100, //超时时间设置,单位毫秒 type: 'get', data: {}, //请求所传参数,json格式 dataType: 'json', //返回的数据格式 success: function (data) { alert("成功"); }, complete: function (XMLHttpRequest, status) { //求完成后最终执行参数 // 设置tim