javascript - 我可以在非 SPA 项目上使用 Axios 吗?
问题描述
我厌倦了 ajax long 风格的发送请求,我在一个 SPA 项目中使用了 axios,它非常酷,我查看了你的文档以了解它是如何工作的并且效果很好,但是如果我尝试提出请求,它会拖未经身份验证的错误,我使用 Laravel php 框架作为我的代码后端,如果我尝试直接在 ajax 上运行它,它可以工作,或者它也可以正常工作。
另外,我在任何地方都没有任何身份验证中间设置。
这是库Axios 库的文档
这是我的示例代码
axios.get('/home', {} , {
'X-CSRF-TOKEN' : "{{csrf_token()}}",
'X-Requested-With': 'XMLHttpRequest',
'Accept' : 'application/json',
'Content-Type' : 'application/x-www-form-urlencoded',
})
.then(function(ressponse){
console.log(success);
})
.catch(function(error){
console.log(error)
})
});
我只返回控制器中的所有请求而不是特殊的
所以我的问题是,它是 axios 还是 laravel 的问题,或者我不能在没有任何 SPA 框架(例如 react、vue 等)的情况下使用 axios。
谢谢你。
解决方案
它未经身份验证,因为您没有X-CSRF-TOKEN
在标题中设置。
您正在X-CSRF-TOKEN
配置对象上设置一个属性,但这没有意义。
axios.get('/home', {} , {
headers: {
'X-CSRF-TOKEN' : "{{csrf_token()}}",
// X-Requested-With is an ugly hack and you should use an Accept header instead of this (not as well as!)
'X-Requested-With': 'XMLHttpRequest',
'Accept' : 'application/json',
// You're making a GET request. There is no request body to describe the content-type of.
// 'Content-Type' : 'application/x-www-form-urlencoded',
}
})