我有一个看起来像这样的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值,但我将令牌设置为数据有效负载和请求标头中的参数。
答案 0 :(得分:1)
不是beforeSend应该将令牌设置为“X-CSRF-Token”吗?也许为你的标题使用ajaxSetup?
示例:
$.ajaxSetup({
headers: {
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
}
});