Yii框架用ajax提交表单时候报错Bad Request (#400): Unable to verify your data submission.

提交表单报400错误,提示 “您提交的数据无法验证”
原来是csrf验证的问题,因为表单是自己写的,在Yii框架中,为了防止csrf攻击,对post的表单数据封装了CSRF令牌验证。
解决办法关闭csrf验证

frontend/config/main-local.PHP

在配置文件中关闭

$config = [
    ‘components‘ => [
        ‘request‘ => [
            // !!! insert a secret key in the following (if it is empty) - RG2V-Dz_PXVhz7GUtKtbhjIcZ3JPmXaTthis is required by cookie validation
            ‘cookieValidationKey‘ => ‘my-first-yii-web-frontend‘,
            "enableCsrfValidation"=>false,
        ],
    ],
];

只需要加入"enableCsrfValidation"=>false,就可以了
时间: 2024-09-29 02:38:11

Yii框架用ajax提交表单时候报错Bad Request (#400): Unable to verify your data submission.的相关文章

[Yii2]Unable to verify your data submission(你提交的资料无法被验证)

Yii2中,使用form提交数据,会提示: [yii\web\HttpException:400] exception 'yii\web\BadRequestHttpException' with message '您提交的資料無法被驗證.'的错误信息. 我尝试在form中添加 <?= Html::csrfMetaTags() ?> 错误依旧. 尝试在控制器中添加 public $enableCsrfValidation = false; 就可以了. 参考连接: Why get Unable

ajax提交表单

ajax提交表单在项目中常用,前台无论是简单的html.jsp或者是使用了easyui框架,提交表单都会使用到ajax,extjs框架其实也是使用了ajax只不过对其进行了封装了,我们使用的时候就更固定了些. 总的来说ajax提交表单可以分为两种,一种是无返回结果的,就是将表单数据提交给后台,后台处理完就完了:另一种就是有返回结果的,后台执行成功或失败的信息需要返回到前台. 1,无返回结果的 最简单的就是$("#formid").submit();直接将form表单提交到后台. 2,有

分针网—每日分享:ajax提交表单

ajax提交表单在项目中常用,前台无论是简单的html.jsp或者是使用了easyui框架,提交表单都会使用到ajax,extjs框架其实也是使用了ajax只不过对其进行了封装了,我们使用的时候就更固定了些. 总的来说ajax提交表单可以分为两种,一种是无返回结果的,就是将表单数据提交给后台,后台处理完就完了:另一种就是有返回结果的,后台执行成功或失败的信息需要返回到前台. 1. 无返回结果的 最简单的就是$("#formid").submit();直接将form表单提交到后台. 2.

关于ajax提交表单

今天主要是四个问题: 1.表单页面元素的获取: 2.按钮的值的获取: 3.按钮的值以变量提交: 4.表单的提交: 获取表单元素时用的是事件委托的方法.{犯的错误:1.用获取表格父级元素的方法获取,没有意识到表单的值是填在value里面的,而表格里面的值直接在th容器里填的 2.在考虑父级元素时没有考虑到它所有的容器都属于他的父级元素                                                                                   

Jquery ajax提交表单几种方法详解

[导读] 在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$( 表单ID) serialize();就行了,下面我来介绍两个提交表单数据的方法.$get方式提交表单get() 方法通过远程 HTTP 在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$('#表单ID').serialize();就行了,下面我来介绍两个提交表单数据的方法. $get方式提交表单 get() 方

Validator验证Ajax提交表单的方法

当我们在一些稍微复杂的业务时,可能会遇到需要多个表单form在同一个页面的情况,但是提交一个表单以后不想页面刷新或者跳转,那么我们考虑到的就是Ajax提交表单,那么如何让Jquery的validator插件也可以对异步提交的表单进行验证呢?我们继续往下看. 在这里,我就用网络上的一个例子来说明好了. 下面是一个比较常见的jquery .ajax提交表单的写法 Js代码   $("#submitButton").click(function(){ //序列化表单 var param = 

MVC中ajax提交表单示例

页面中: @using (Ajax.BeginForm("Login", "User", new AjaxOptions() { HttpMethod = "post", OnSuccess = "afterOk" })) { <input ...一些表单 <input type="checkbox" id="ckbrecord" name="ckbrecord&q

转载 jQuery中使用$.ajax提交表单

首先,新建Login.html页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>     <title&g

ajax提交表单、ajax实现文件上传

ajax提交表单.ajax实现文件上传,有需要的朋友可以参考下. 方式一:利用from表单的targer属性 + 隐藏的iframe 达到类似效果, 支持提交含有文件和普通数据的复杂表单 方式二:使用jquery的$.ajax({..}), 支持提交普通表单,但不支持含有文件的复杂表单; ($.post 或 $.get底层用的都是$.ajax) 方式三:使用jquery插件ajaxFileUpload.js, 支持上传文件,但不支持提交表单 方式四:使用jquery.from.js,支持提交同时