Laravel&Vue:Axios GET呼叫返回200状态,但无响应

时间:2018-11-06 13:20:59

标签: javascript php laravel vue.js

编辑:

所以我只是通过将axios get呼叫更改为post呼叫来实现此目的,与路由相同,不知道为什么要这样做?

来自: javascript axios.get('/globals/get-logged-user')

php Route::get('/globals/get-logged-user','GlobalsController@getLoggedUser');

收件人:

javascript axios.post('/globals/get-logged-user')

php Route::post('/globals/get-logged-user','GlobalsController@getLoggedUser');

我正在尝试获取Header vue组件的当前经过身份验证的用户(如果存在),我还使用vuex存储模块来保持我的代码井井有条和分离。

过程如下:

当头组件被mount()时,我调度动作getLoggedUser。

现在在Globals商店内,我使axios接到路由/ globals / get-logged-user

的电话

如果调用成功,我将更新状态,现在我的Header组件应该能够在mapState vuex helper的帮助下访问记录的用户数据。

现在实际发生了什么:

axios get调用已完成,它返回正200状态代码,但响应为空,没有任何内容从后端发回。

这是我的网络标签:

https://i.imgur.com/hlD9bAY.png

您可以看到其他ajax请求返回了实际数据,但get调用未返回任何内容,我还注意到GET调用的类型是html,是吗?

我的组件

<template>
<header class="header_maincontainer">
    <div class="header_small_container">
         <span>{{ loggedUser.email }}</span>   
    </div>
</header>
</template>
<!--SCRIPTS-->
<script>
import { mapState, mapActions } from 'vuex'
export default {
name: 'MainHeader',
computed: {
    
    //...mapState('Globals', ['allGlobals', 'loggedUser', 'globals']),
    ...mapState('Globals', [ 'loggedUser']),
},

mounted() {
    console.log(this.$options.name+' component successfully mounted');
    this.getLoggedUser();
},

methods:{
    //component actions declaration
    ...mapActions('Globals', ['getLoggedUser']),
  
}
};
</script>
<!--STYLES-->
<style scoped>

</style>

我的Globals vuex模块:

import axios from 'axios'

//STATE
const state = {
    
    loggedUser:'',
    
    loadingStatus:0
}

//GETTERS
const getters = {




}

//ACTIONS
const actions = {

    

    
    getLoggedUser ({ commit }) {

        commit( 'SET_LOAD_STATUS', {status: 1} );
        axios.get('/globals/get-logged-user')
        .then((response) => {
            commit('GET_LOGGED_USER', { loggedUser: response.data.loggedUser })
            console.log(response.data.loggedUser);
            commit( 'SET_LOAD_STATUS', {status: 2} );
        },
        (error) => {
            console.log(error);
            commit( 'SET_LOAD_STATUS', {status: 3} );
        })
    },


    

}

//MUTATIONS
const mutations = {

    
    GET_LOGGED_USER (state, loggedUser) {
        state.loggedUser = loggedUser;
    },

  

}

export default {
  namespaced: true, state, getters, actions, mutations
}

还有我的laravel后端:

<?php

namespace App\Http\Controllers;

use App\Models\Globals;
use Illuminate\Http\Request;

class GlobalsController extends Controller
{
    
    


    public function getLoggedUser(){

        $loggedUser = Auth::user();
    
        return response()->json([
        
            'loggedUser' => $loggedUser

        ]);

    }


   
}

请帮助我,这些天来我仍然坚持这样做。

1 个答案:

答案 0 :(得分:0)

如果收到的200回复​​为空,则可能是您输入了错误的路线。

尝试添加调试输出或断点以检查您是否在正确的控制器功能中。