所以我有一个有趣的问题,据我所知,我正在做正确的事情,如果API请求出现令牌不匹配问题。
考虑以下事项:
sendPostData(){ 让params = { title:this.state.post_title, content:this.state.post_content, 标签:this.state.tags, 类别:this.state.categories, blog_id:this.props.blogId, };
$.ajax({
url: this.props.urlToPostTo,
type: 'POST',
header: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: params,
dataType: 'json'
}).done((data) => {
console.log(data);
});
}
当我console.log($('meta[name="csrf-token"]').attr('content'))
我得到一个令牌字符串时,那里没有问题。
当我发布到相关网址时,我得到:
TokenMismatchException in VerifyCsrfToken.php line 67:
根据这些docs我正在做的事情......我想。
思想吗
答案 0 :(得分:3)
您应该在ajax中发送csrf-token值“headers”块而不是“header”块,如下所示:
$.ajax({
url: this.props.urlToPostTo,
type: 'POST',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: params,
dataType: 'json'
}).done((data) => {
console.log(data);
});
答案 1 :(得分:0)
我可能会弄错,但我认为你的AJAX请求中应该是标题 s ,而不是标题。