这个问题在之前也遇到过,也的确困扰了我很久。 但是尽管我在osc上提问,也没能够解决,google也没出结果(可能自己还没有掌握)。
我一直在纠结是不是js写错了,我用jquery 的ajax函数写了一遍,又用原生的ajax写了一遍。都没有解决,最后只能够使用get请求来代替了,即便是这样,但是总感觉有什么东西咯着难受!
最近在做看电影啦 的时候也要用到ajax post。所以又在网上寻找答案。终于,无意之中在Yii from找到这个答案()YII_CSRF_TOKEN 这个东西,因为我开启了 enableCsrfValidation’=>true ,所以在进行请求的时候会加上csrf的验证。所以在ajax 进行ajax post请求的时候就无法通过验证了。
解决办法: 只要请求的时候手动加上 YII_CSRF_TOKEN 就行了!
例如:
//发送ajax $.ajax({ type: "post", dataType: 'json', url: "index.php?r=Movie/InsertFavorite", data:{'movie_id':'<?php echo $_GET['id']?>','YII_CSRF_TOKEN':'<?php echo ii::app()->request->csrfToken>'}, cache: false, error: function (XMLHttpRequest, textStatus, errorThrown) { alert(errorThrown); }, success:function(data){ var result=eval("("+data+")"); alert(data) }, });
感谢您对【51运维网 】的支持,我们为您免费提供《使用Yii进行ajax post请求时出现400(bad request)错误》技术文章,《使用Yii进行ajax post请求时出现400(bad request)错误》详细使用和说明,有时《使用Yii进行ajax post请求时出现400(bad request)错误》可能不完善、敬请谅解!如果《使用Yii进行ajax post请求时出现400(bad request)错误》有错误请给我们留言,我们将尽快修复文章错误,如果您觉得本站不错,请分享给周围的朋友!谢谢!