【发布时间】:2020-10-25 06:19:27
【问题描述】:
我使用 Sanctum 创建了一个 vue 和 Laravel Spa,使用 axios 发送请求,但我得到状态 204,当我尝试获取用户信息时,我得到 未验证,我不知道出了什么问题!
这是我的 api.php
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
home.vue
<script>
import axios from "axios";
axios.defaults.withCredentials = true;
axios.defaults.baseURL = "http://localhost:8000/";
export default {
name: "Home",
methods: {
login() {
axios.get("/sanctum/csrf-cookie").then((response) => {
axios.post('/login',{
email:'user@user.com',
password:'123456789'
})
.then(response=>{
console.log(response)
})
});
},
},
};
</script>
dashboard.vue
<script>
import axios from "axios";
axios.defaults.withCredentials = true;
axios.defaults.baseURL = "http://localhost:8000/";
export default {
mounted(){
axios.get("/api/user").then((response)=>{
console.log(response);
})
}
}
</script>
【问题讨论】:
-
204 不是错误响应,它没有内容响应。究竟是什么错误?
-
我想知道为什么响应没有内容,当我尝试通过localhost:8000/api/user 获取用户数据时出现错误:请求失败,状态码为 401
-
因为它的 json 请求登录控制器(laravel 的默认)发送这个响应。这是代码:github.com/laravel/ui/blob/2.x/auth-backend/…
-
我明白了,但为什么我无法获取用户数据?
-
这可能是因为不同的来源意味着您的前端和后端域不同或您的前端域不是后端的子域。