禁用 ajax 查询的 Csrf
Disable Csrf for ajax query
我正在使用Laravel 5.1,我正在尝试禁用此路由的csrf验证,以便能够使用Jquery Form Validator执行一些远程验证:
Route::post('verify', 'formController@check');
如文档中所述,我只需要将我的 URI 添加到 $exclude
属性。 我做了:
namespace App'Http'Middleware;
use Illuminate'Foundation'Http'Middleware'VerifyCsrfToken as BaseVerifier;
class VerifyCsrfToken extends BaseVerifier
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
'verify',
];
}
这不起作用,所以我尝试禁用整个应用程序的csrf验证:
class Kernel extends HttpKernel
{
protected $middleware = [
...
//'App'Http'Middleware'VerifyCsrfToken::class,
];
protected $routeMiddleware = [
...
];
}
那也没用。我在控制台上不断收到此错误:
开机自检 http://domain.name/verify 500(内部服务器错误)
whice 正好指向这一行(验证者的 js 文件):
ajax({url:b,type:"POST",cache:!1,data:g,dataType:"json",error:function(a){return h({valid:!1,message:"Connection failed,状态为: "+a.statusText},f),!1}
我错过了什么?谢谢你的帮助。
命名空间 App''Http''Middleware;
使用 Illuminate''Foundation''Http''Middleware''VerifyCsrfToken 作为 BaseVerifier;
类 VerifyCsrfToken 扩展 BaseVerifier{
protected $except_urls = [
'verify'
];
public function handle($request, Closure $next)
{
$regex = '#' . implode('|', $this->except_urls) . '#';
if ($this->isReading($request) || $this->tokensMatch($request) || preg_match($regex, $request->path()))
{
return $this->addCookieToResponse($request, $next($request));
}
throw new TokenMismatchException;
}
}
解决了这个问题。
对于Laravel 5及更高版本,在App'Http'Middleware'VerifyCsrfToken.php
中添加protected $except = ['verify',];
确实可以解决问题。
注意:谷歌的检查工具(网络菜单)帮助我了解了到底发生了什么。
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- j查询utc offSets的时差
- 如何有效地将游戏数据存储在URL查询字符串中
- 如何处理node.js节点mongodb中的连接和查询队列
- 如何从 HTML 查询中删除项目
- 从查询字符串参数推断出正确的数据类型
- Django: AJAX + CSRF POST gives 403
- 将curl查询转换为jQuery.ajax()
- 触发媒体查询断点时刷新页面
- 使用DynamoDB查询返回
- 当查询不在displayField中时,引导Ajax Typeahead不显示结果
- 如何将PHP get查询转换为Meteor's HTTP.get()
- AngularJS:获取链接中没有哈希的查询字符串值
- 捕获初始RedQueryBuilder查询中的SQL问题
- AngularJS,如何更改查询字符串
- 具有大型几何图形的基于沙发的空间查询
- 在php中提交数据时,如果某些值为null,而某些值为非null,如何进行查询
- o数据扩展查询在SystemUserRolesSet上不起作用
- Xpath运行缓慢的查询
- 禁用 ajax 查询的 Csrf