Laravel(5.2)令牌不匹配API请求

时间:2016-06-23 14:06:12

标签: php ajax laravel laravel-5.2

所以我有一个有趣的问题,据我所知,我正在做正确的事情,如果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我正在做的事情......我想。

思想吗

2 个答案:

答案 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 ,而不是标题