涛哥
- 涛哥 收藏了话题Yii2的Formatter详解
- 涛哥 赞了回答
在yii1版本中并没有这个特性,yii.js中全局绑定了ajax的请求,并自动添加了一些属性比如:
function initCsrfHandler() { // automatically send CSRF token for all AJAX requests $.ajaxPrefilter(function (options, originalOptions, xhr) { if (!options.crossDomain && pub.getCsrfParam()) { xhr.setRequestHeader('X-CSRF-Token', pub.getCsrfToken()); } }); pub.refreshCsrfToken(); }
然后验证时,多了一个方法:
public function validateCsrfToken($token = null) { $method = $this->getMethod(); // only validate CSRF token on non-"safe" methods http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.1.1 if (!$this->enableCsrfValidation || in_array($method, ['GET', 'HEAD', 'OPTIONS'], true)) { return true; } $trueToken = $this->loadCsrfToken(); if ($token !== null) { return $this->validateCsrfTokenInternal($token, $trueToken); } else { return $this->validateCsrfTokenInternal($this->getBodyParam($this->csrfParam), $trueToken) || $this->validateCsrfTokenInternal($this->getCsrfTokenFromHeader(), $trueToken); } }
即:$this->validateCsrfTokenInternal($this->getCsrfTokenFromHeader(), $trueToken);中的$this->getCsrfTokenFromHeader()
所以可以肯定的是,在框架内使用jquery的ajax可以不用带csrf相关参数
- 涛哥 2016-01-04 已签到连续签到2天,获得了10个金钱
- 涛哥 回答了问题 怎么下载一个音频文件或者其他的文件
什么服务器?
- 涛哥 2016-01-03 已签到连续签到1天,获得了5个金钱
看下你是不是开启了ajax,否则,请设置target为_blank
- 涛哥 回答了问题 YII2安装后的URL默认为2%F怎么修改
urlManager
没什么影响,编码是正确的做法 - 涛哥 回答了问题 求助使用urlManager美化路径
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php
- 涛哥 回答了问题 求助使用urlManager美化路径
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php