Uncaught (in promise) Error: Request failed with status code 404
Uncaught (in promise) Error: Request failed with status code 404
我在从 API 获取一些数据时遇到上述错误。以下是我正在尝试 GET
数据的 action creator
的代码:
import { FETCH_USER } from './types';
import axios from 'axios';
export const fetchUser = () => async dispatch => {
console.log('fetchUser');
const res= await axios.get('/api/current_user');
dispatch({ type: FETCH_USER, payload: res });
};
另外,当我在代码编辑器中调试时,控制台给我以下错误:
SyntaxError: Unexpected token import
一般在 GET 方法中提供的 url/location 不正确时会出现此错误。
所以再次检查url/location并更正它。
所以很可能这里有一些错误:'/api/current_user'
在我的例子中,这是一个小的语法错误(括号错位)。
我的代码如下所示:
axiosget("/api-url").then(
(response) => {
doSomething();
}), () => {
doError();
}
);
而不是这个:
axiosget("/api-url").then(
(response) => {
doSomething();
}, () => {
doError();
});
);
如果您收到此错误消息,则表示您的错误处理代码不存在或无法访问,因此未处理 promise(因为您的 catch-part 未正确设置) .
如果您收到此消息,请务必仔细检查您的语法!
如果您将 laravel 用于 API,将 vue/Nuxtjs 用于前端,将 axios 用于将数据发送至 API...
laravel 验证错误使用 try{} catch(){} 块以不正确的方式发送或 axios 以不正确的方式使用 try() catch(){} 块接收错误可能会遇到这种类型的错误.
在这里,尝试使用 catch 块进行错误处理。
如果你的 API 路由调用了 public 函数它的名字“register()”,那么你控制器中的函数必须遵循...(我正在使用 laravel-8 表示 API)
public function register(Request $request) {
try {
$fields = $request->validate([
'name' => 'required|string',
'email' => 'required|string|email|unique:users',
'password' => 'required|string|confirmed',
]);
$user = User::create([
'name' => $fields['name'],
'email' => $fields['email'],
'password' => bcrypt($fields['password'])
]);
$token = $user->createToken('myapptoken')->plainTextToken;
$response = [
'user' => $user,
'token' => $token,
];
return response()->json($response, 200);
} catch(ValidationException $e) {
return response()->json([
'status' => 'error',
'msg' => 'error',
'errors' => $e->errors()
], 422);
}
}
并且 Frontend Nuxt 或 vue 方法名称是“registerNewUser()”,因此,代码可以遵循错误处理...
async registerNewUser() {
try {
let data = {
name : this.name.trim(),
email : this.email.trim(),
password : this.password.trim(),
password_confirmation : this.password_confirmation.trim(),
};
let headers = {
headers: {
'Accept': 'application/json',
}
};
await this.$axios
.post("/api/register", data, headers)
.then((response) => {
console.log("response", response);
if(response) {
// console.log(response)
} else {
}
});
} catch(err) {
// here we are receiving validation errors
console.log("Err == ", err.response);
console.log(err.response.data.errors);
}
}
您正在 axios 中接收响应,然后使用 err.response
在 catch 块中阻止或接收错误
这里,
let data = {
name : this.name.trim(),
email : this.email.trim(),
password : this.password.trim(),
password_confirmation : this.password_confirmation.trim(),
};
给出的代码是针对Nuxtjs或vuejs的数据。如果不知道您可以使用以下数据或任何其他数据...
let data = {
name : 'Kallol',
email : 'kallolray94@gmail.com',
password : '123456',
password_confirmation : '123456',
};
我在从 API 获取一些数据时遇到上述错误。以下是我正在尝试 GET
数据的 action creator
的代码:
import { FETCH_USER } from './types';
import axios from 'axios';
export const fetchUser = () => async dispatch => {
console.log('fetchUser');
const res= await axios.get('/api/current_user');
dispatch({ type: FETCH_USER, payload: res });
};
另外,当我在代码编辑器中调试时,控制台给我以下错误:
SyntaxError: Unexpected token import
一般在 GET 方法中提供的 url/location 不正确时会出现此错误。 所以再次检查url/location并更正它。
所以很可能这里有一些错误:'/api/current_user'
在我的例子中,这是一个小的语法错误(括号错位)。 我的代码如下所示:
axiosget("/api-url").then(
(response) => {
doSomething();
}), () => {
doError();
}
);
而不是这个:
axiosget("/api-url").then(
(response) => {
doSomething();
}, () => {
doError();
});
);
如果您收到此错误消息,则表示您的错误处理代码不存在或无法访问,因此未处理 promise(因为您的 catch-part 未正确设置) .
如果您收到此消息,请务必仔细检查您的语法!
如果您将 laravel 用于 API,将 vue/Nuxtjs 用于前端,将 axios 用于将数据发送至 API... laravel 验证错误使用 try{} catch(){} 块以不正确的方式发送或 axios 以不正确的方式使用 try() catch(){} 块接收错误可能会遇到这种类型的错误. 在这里,尝试使用 catch 块进行错误处理。
如果你的 API 路由调用了 public 函数它的名字“register()”,那么你控制器中的函数必须遵循...(我正在使用 laravel-8 表示 API)
public function register(Request $request) {
try {
$fields = $request->validate([
'name' => 'required|string',
'email' => 'required|string|email|unique:users',
'password' => 'required|string|confirmed',
]);
$user = User::create([
'name' => $fields['name'],
'email' => $fields['email'],
'password' => bcrypt($fields['password'])
]);
$token = $user->createToken('myapptoken')->plainTextToken;
$response = [
'user' => $user,
'token' => $token,
];
return response()->json($response, 200);
} catch(ValidationException $e) {
return response()->json([
'status' => 'error',
'msg' => 'error',
'errors' => $e->errors()
], 422);
}
}
并且 Frontend Nuxt 或 vue 方法名称是“registerNewUser()”,因此,代码可以遵循错误处理...
async registerNewUser() {
try {
let data = {
name : this.name.trim(),
email : this.email.trim(),
password : this.password.trim(),
password_confirmation : this.password_confirmation.trim(),
};
let headers = {
headers: {
'Accept': 'application/json',
}
};
await this.$axios
.post("/api/register", data, headers)
.then((response) => {
console.log("response", response);
if(response) {
// console.log(response)
} else {
}
});
} catch(err) {
// here we are receiving validation errors
console.log("Err == ", err.response);
console.log(err.response.data.errors);
}
}
您正在 axios 中接收响应,然后使用 err.response
在 catch 块中阻止或接收错误这里,
let data = {
name : this.name.trim(),
email : this.email.trim(),
password : this.password.trim(),
password_confirmation : this.password_confirmation.trim(),
};
给出的代码是针对Nuxtjs或vuejs的数据。如果不知道您可以使用以下数据或任何其他数据...
let data = {
name : 'Kallol',
email : 'kallolray94@gmail.com',
password : '123456',
password_confirmation : '123456',
};