[英]laravel vue SPA page returning HTML instead of json value on ajax request
這是我來自 Vue 頁面的 ajax 請求。
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;
}
這是我的 web.php 呈現所有頁面
Route::get('/{any}', function () {
return view('welcome');
})->where('any', '.*');
在 Api.php 中,我有 checkEmail 的路由
Route::get('/check-email/{$email}', 'Frontend\Authentication\AuthenticationController@checkEmail')->name('check-email');
在控制器中,我有
public function checkEmail($email)
{
return response()->json('ok');
}
當我到達那條路線時。 它是這樣返回的
響應應該是 'ok' 。 我想不通問題..
在不應該有的路線上有一個 dolar 標志。
嘗試將 {$email} 更改為 {email}
標題似乎沒問題,所以為了避免這種情況,請在您的網絡路由中添加一個條件:
Route::get('/{any}', function () {
return view('welcome');
})->where('any', '^(?!api).*');
這應該告訴 laravel 使用 api 路由。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.