CSRF令牌在Laravel ajax调用中不起作用
我已经检查了这个问题的无数答案,由于某种原因,我无法让它工作 我得到一个错误: 401(未经授权) 我的路线是api路线 我的数据:CSRF令牌在Laravel ajax调用中不起作用,laravel,Laravel,我已经检查了这个问题的无数答案,由于某种原因,我无法让它工作 我得到一个错误: 401(未经授权) 我的路线是api路线 我的数据: let ajaxMainTemplate = { 'mainTemplate': mainTemplate, 'templateId': templateId, '_token': accessToken, } 我的ajax调用: $.ajax({ type: 'POST', url:`../api/aiMainTemplate/${
let ajaxMainTemplate = {
'mainTemplate': mainTemplate,
'templateId': templateId,
'_token': accessToken,
}
我的ajax调用:
$.ajax({
type: 'POST',
url:`../api/aiMainTemplate/${ajaxData.templateId}`,
data: {
_token: ajaxData._token,
ajaxData
},
success: function(response) {
console.log(response)
}
})
我已经尝试了上面的测试,基于另一个响应。我将令牌放在ajaxData
对象之外。我也犯了同样的错误。我还尝试:
$.ajax({
type: 'POST',
url:`../api/aiMainTemplate/${ajaxData.templateId}`,
headers: { 'X-CSRF-TOKEN': ajaxData._token },
data: ajaxData,
success: function(response) {
console.log(response)
}
})
一样
我还通过添加
控制台确认了令牌的存在。log
知道我的错误在哪里吗?我的url位于受api保护的路由后面,因此我必须通过ajax调用ajax登录
凭据位于变量ajaxData中
$.ajax({
type: 'POST',
url: 'http://127.0.0.1:8000/api/login',
data: ajaxData,
success: function(response) {
shopifyToken = response.success.token;
getListProducts(shopifyToken);
}
});
通过此登录生成的shopify令牌,它可以正常工作。当问题是由于csrf令牌造成的时,laravel通常返回419,而不是401。问题可能是因为您使用的api身份验证在ajax postAh优秀捕获中没有完全归档@Gamopo如前所述,401不是令牌问题,因此可能这是其他问题,但您使用
ajaxData
传递令牌,但变量实际上是ajaxMainTemplate
。另外,您在第一个AJAX示例中传递的数据的结构看起来是错误的,应该是data:ajaxMainTemplate
?您好,AJAX调用在方法中,ajaxData是接收到的参数。