Получить возвращенные данные после публикации с помощью axios (vue + laravel) - PullRequest
0 голосов
/ 31 октября 2019

Я хотел создать пользовательскую систему входа в систему, используя vue в качестве внешнего интерфейса, laravel, управляющий API, и axios в качестве контроллера между ними. Я хотел получить возвращенные данные из моего AuthController. Вот мои коды:

Vue:

export default {
name: 'Login',
data(){
    return {
        user_input: [
            {email: ''},
            {password: ''}
        ],
        csrf: document.querySelector('meta[name="csrf-token"]').getAttribute('content')
    }
},
methods: {
    userLogin: function(){
        let params = Object.assign ({}, this.user_input)
        axios.post('/api/login/', params)
        .then(function(response){
            console.log(response.data)
        })
        .catch(function(error){
            console.log(error)
        })

    }
}
}

А в AuthController:

public function login(Request $request) {
    return "Hey";
}

Вывод на консоль такой:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="csrf-token" content="40lajOfdWdmIQ1yP49dyeyToidT79CntGyHqrNRD">
<link rel="stylesheet" href="/css/app.css">
<title>VueComplete</title>
</head>
<body>
<div id="app">
    <App/>
</div>
<script src="http://vuecomplete.test/js/app.js"></script>
</body>

(Это в основном мое представление app.blade.php).

почему он не возвращает "Привет"?

Я также пытался:

public function login(Request $request) {
    return $request->email;
}

Но это дало тот же результат. Как я могу это исправить? Огромное спасибо!

Обновление

Я использую vue-router для создания SPA в laravel. В моих маршрутах (web.php) у меня примерно так:

Route::get('/{any}', 'SPAController@index')->where('any','.*');

Что потом в контроллере:

public function index() {
    return view('app');
}

Наверное, поэтому он возвращает весь app.blade.phpHTML-код.
Есть ли способ получить доступ к api/login, все еще используя возможности SPA vue-router?

Ответы [ 2 ]

1 голос
/ 31 октября 2019

Исключить API-маршруты из веб-маршрута

Route::get('/{any}', 'SPAController@index')->where('any', '^(?!api).*$');

Надеюсь, это поможет

0 голосов
/ 31 октября 2019

Я решил это. На VUE это должно было быть api/login не /api/login или api/login/ или что-то.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...