HTTP状态403 - 错误或缺少CSRF值但设置了csrf令牌

时间:2017-01-17 14:59:33

标签: http request

我有一个看起来像这样的ajax请求:

$.ajax({
   headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json'
       },
       'url': defaults.addToCartUrl,
       'data': JSON.stringify({CSRFToken: Config.CSRFToken,currentUser: currentCustomer, entries: cartItems}),
       'type': 'POST',
       'dataType': 'json',
       beforeSend: function(xhr) {
           xhr.setRequestHeader('X-CSRFToken', Config.CSRFToken);
        },
        'success': function (data, textStatus, jqXHR) {

        },
        'error': function (jqXHR, exception, m) {
             console.log('Cannot move products from 
         }
     });

问题是我一直收到此HTTP状态403 - 错误或缺少CSRF值,但我将令牌设置为数据有效负载和请求标头中的参数。

enter image description here

1 个答案:

答案 0 :(得分:1)

不是beforeSend应该将令牌设置为“X-CSRF-Token”吗?也许为你的标题使用ajaxSetup?

示例:

$.ajaxSetup({
  headers: {
    'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
  }
});