如何在前端显示来自 api 的 .catch 中的错误
how to display the errors in .catch coming from an api on frontend
我正在使用 laravel 构建一个项目,这很简单 api
我已经使用 passport 构建了 frontend
我正在使用react 一切正常,除了我无法在 .catch 函数中捕获错误消息我可以在浏览器的网络选项卡中看到错误,但我不知道如何显示它们.
这是我的 UserController
class UserController extends Controller
{
public function create(Request $request)
{
$data = $request->only('name', 'email', 'password');
$validator = Validator::make($data, [
'name' => 'required',
'email' => 'required|email|unique:users',
'password' => 'required|min:6'
]);
if ($validator->fails()) {
return response()->json(['errors'=>$validator->errors()], 422);
}
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password'])
]);
}
}
这就是我使用 axios 使用 api 的方式:
export function signupUser({ name, email, password }) {
return function(dispatch) {
axios.post(`${ROOT_URL}/api/signup`, {name, email, password})
.then(response => {
dispatch({ type: AUTH_USER });
localStorage.setItem('token', response.data.access_token);
browserHistory.push('/feature');
})
.catch((error) => {
// console.log(error);
});
}
}
这是控制台日志
这是我浏览器网络选项卡中的响应
- 如果您有任何问题,请告诉我。
- 如有帮助,我们将不胜感激
更改以下代码行。
.catch((error) => {
console.log(error.response);
});
.catch(function (error) {
if (error.response) {
// The request was made, but the server responded with a status code
// that falls out of the range of 2xx
console.log(error.response.data);
console.log(error.response.status);
console.log(error.response.headers);
} else {
// Something happened in setting up the request that triggered an
console.log('Error', error.message);
}
return error;
});
请检查以下代码
https://github.com/johibkhan2/react-redux-singlePageApp/blob/master/app/api/phone-api.js
我正在使用 laravel 构建一个项目,这很简单 api
我已经使用 passport 构建了 frontend
我正在使用react 一切正常,除了我无法在 .catch 函数中捕获错误消息我可以在浏览器的网络选项卡中看到错误,但我不知道如何显示它们.
这是我的 UserController
class UserController extends Controller
{
public function create(Request $request)
{
$data = $request->only('name', 'email', 'password');
$validator = Validator::make($data, [
'name' => 'required',
'email' => 'required|email|unique:users',
'password' => 'required|min:6'
]);
if ($validator->fails()) {
return response()->json(['errors'=>$validator->errors()], 422);
}
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password'])
]);
}
}
这就是我使用 axios 使用 api 的方式:
export function signupUser({ name, email, password }) {
return function(dispatch) {
axios.post(`${ROOT_URL}/api/signup`, {name, email, password})
.then(response => {
dispatch({ type: AUTH_USER });
localStorage.setItem('token', response.data.access_token);
browserHistory.push('/feature');
})
.catch((error) => {
// console.log(error);
});
}
}
这是控制台日志
这是我浏览器网络选项卡中的响应
- 如果您有任何问题,请告诉我。
- 如有帮助,我们将不胜感激
更改以下代码行。
.catch((error) => {
console.log(error.response);
});
.catch(function (error) {
if (error.response) {
// The request was made, but the server responded with a status code
// that falls out of the range of 2xx
console.log(error.response.data);
console.log(error.response.status);
console.log(error.response.headers);
} else {
// Something happened in setting up the request that triggered an
console.log('Error', error.message);
}
return error;
});
请检查以下代码
https://github.com/johibkhan2/react-redux-singlePageApp/blob/master/app/api/phone-api.js