laravel5.3以前在在bootstrap.js中验证是这样的
window.axios.defaults.headers.common = {
'X-CSRF-TOKEN': window.Laravel.csrfToken,
'Authorization': window.Laravel.apiToken
};
但是我现在用的是5.6版本,貌似5.5也是这样的,bootstrap.js是这样的
window.axios = require('axios');
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
let token = document.head.querySelector('meta[name="csrf-token"]');
if (token) {
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}
新的bootstrap.js是获取app.blade.php里面的meta
<meta name="csrf-token" content=" csrf_token() ">
但是我按照这个写
let apiToken = document.head.querySelector('meta[name="apiToken"]');
if (apiToken) {
window.axios.defaults.headers.common['Authorization'] = apiToken.content;
} else {
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}
app.blade.php里面加入
<meta name="apiToken" content=" Auth::check() ? 'Bearer '.Auth::user()->api_token : 'Bearer ' ">
在浏览器里查看时能看到获取了apiToken,但是还是401,百度 Google也查不到相关写法,请问该怎么解决啊