[英]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.