laravel vue SPA страница возвращающая HTML вместо JSON значения по ajax запросу

laravel vue SPA страница возвращающая HTML вместо JSON значения по ajax запросу

25.12.2019 12:34:56 Просмотров 43 Источник

Это мой ajax-запрос со страницы Vue .

AuthenticationServices.checkEmail(this.userData.email).then(response => {
    console.log(response);
    if (response.data == 1) {
        this.errored = true;
    } else {
        this.errored = false;
        this.successInput = true;
    }
}).catch(error => {
    console.log(error);
});

и это код, в authenticationservice присвоено.JS

checkEmail(email) {
    const url = '/check-email' + '/' + email;
    const headers = {
        'Accept': 'application/json',
        'X-Requested-with': 'XMLHttpRequest'
    }
    return Api.get(url, headers);
}

и это на Api.JS

get(url, headers = {}) {
    url = this.prepareUrl(url);
    const options = {
        headers: headers
    }
    return axios.get(url, options);
},
prepareUrl(endpoint) {
    let baseUrl = '127.0.0.1:8000/api';
    return baseUrl + endpoint;
}

и это моя паутина.php который рендерит все страницы

Route::get('/{any}', function () {
  return view('welcome');
})->where('any', '.*');

и в Api тоже.php у меня есть маршрут для проверки почты

Route::get('/check-email/{$email}', 'Frontend\Authentication\AuthenticationController@checkEmail')->name('check-email');

а в контроллере у меня есть

public function checkEmail($email)
{
    return response()->json('ok');
}

и когда я попаду на этот маршрут . он возвращается вот так

Ответ должен быть "ОК". я не могу понять, в чем проблема ..

Раздел заголовка enter image description here

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/59477026/laravel-vue-spa-page-returning-html-instead-of-json-value-on-ajax-request#comment105131530_59477026
Какую версию Laravel вы используете?
https://stackoverflow.com/questions/59477026/laravel-vue-spa-page-returning-html-instead-of-json-value-on-ajax-request#comment105131564_59477026
ларавель Версио 5.8.* и vue ^2.6.10
https://stackoverflow.com/questions/59477026/laravel-vue-spa-page-returning-html-instead-of-json-value-on-ajax-request#comment105131710_59477026
` 'prepareUrl (endpoint) { let baseUrl =' 127.0.0.1:8000 / api '; return baseUrl+ endpoint; } ``
https://stackoverflow.com/questions/59477026/laravel-vue-spa-page-returning-html-instead-of-json-value-on-ajax-request#comment105131853_59477026
@PtrTon да, я сделал это .

Ответы - laravel vue SPA страница возвращающая HTML вместо JSON значения по ajax запросу / laravel vue SPA page returning HTML instead of json value on ajax request

Maraboc

25.12.2019 01:13:32

Заголовок, кажется, в порядке, поэтому, чтобы избежать этого, добавьте условие в свои веб-маршруты :

Route::get('/{any}', function () {
  return view('welcome');
})->where('any', '^(?!api).*');

Это должно заставить laravel использовать API-маршруты вместо этого.

https://stackoverflow.com/questions/59477026/laravel-vue-spa-page-returning-html-instead-of-json-value-on-ajax-request/59477340#comment105132126_59477340
Нет, не сработало. он выбрасывает маршрут не найденной ошибки.
Является ответом!
Robbin Benard

25.12.2019 01:32:37

На маршруте есть знак долара там, где его не должно быть.

попробуйте изменить {$email} на {email}

https://stackoverflow.com/questions/59477026/laravel-vue-spa-page-returning-html-instead-of-json-value-on-ajax-request/59477499#comment105132507_59477499
ОМГ-человек .. как я мог быть таким беспечным?..... Это сработало .. спасибо
Закрыть X