上传文件报TokenMismatchException异常

使用ajaxupload插件上传文件时报TokenMismatchException错误,但我已在页面加载的时候执行了
$.ajaxSetup({
headers: {
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});

文档上说,这样所有ajax请求都会附带这个token,但为什么还会报这个异常呢,小白求解啊.......................
已邀请:

Bing

赞同来自: KurobaTouichi

1.文档没有错。 你在View 里面是不是忘记加上
<meta name="csrf-token" content="{{ csrf_token() }}" />
2.1楼的答案,在js文件直接使用 {{csrf_token()}} 是不正确的。{{token(()}}是在PHP服务器端解析的。而JS文件是在客户端解析的,你把这个{{token}}发到客户端,浏览器根本不认识 无法解析 也就无法产生token。
3. 正确的罗辑应该是 在 meta标签内产生 跟session相关的token -> JQuery 在提交表单时 自动带上这个token -> 服务器验证token -> 处理表单。
4.请看这篇帖子 http://wenda.golaravel.com/question/650

kelson

赞同来自: KurobaTouichi

你给的值是 content ,当然无法通过验证。
注意两点:
第一、$.ajaxSetup()必须在你执行Ajax之前执行
第二、正确的代码是
$.ajaxSetup({
headers: {
    'X-CSRF-Token': '{{csrf_token()}}'
}
});

要回复问题请先登录注册