【发布时间】:2020-03-10 08:20:08
【问题描述】:
我已经检查了这个问题的无数答案,但由于某种原因我无法让它工作。
我得到错误:
401(未经授权)
我的路由是一个受保护的api路由。
我的数据:
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)
}
})
一样。
我还通过添加console.log 来确认令牌存在,有什么想法我做错了什么吗?
【问题讨论】:
-
当问题是由于 csrf 令牌引起时,laravel 通常返回 419,而不是 401。可能问题是因为您使用了一些您尚未在 ajax 帖子中完整归档的 api 身份验证
-
啊,非常棒。 @Gamopo
-
如前所述,401 不是令牌问题,所以也许这是别的问题,但是您使用
ajaxData传递令牌,但变量实际上是ajaxMainTemplate。此外,您在第一个 AJAX 示例中传递的data的结构看起来是错误的,应该只是data: ajaxMainTemplate? -
您好,方法中没有ajax调用,接收到的参数是ajaxData。
标签: laravel