从API中获取一些数据时,我遇到了上述错误。以下是action creator
我正在尝试GET
数据的代码:
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
答案 0 :(得分:0)
我解决了。这是我的其他js文件中的一个小的语法错误。
答案 1 :(得分:0)
通常,当GET方法中提供的网址/位置不正确时,就会出现此错误。 因此,请再次检查网址/位置并进行更正。
所以这里很可能有一些错误:'/ api / current_user'
答案 2 :(得分:0)
就我而言,这是一个较小的语法错误(方括号放错了位置)。 我的代码如下:
axiosget("/api-url").then(
(response) => {
doSomething();
}), () => {
doError();
}
);
代替此:
axiosget("/api-url").then(
(response) => {
doSomething();
}, () => {
doError();
});
);
如果收到此错误消息,则意味着您的错误处理代码不存在或无法到达,因此未处理承诺(因为未正确设置捕获部分)。 / p>
如果收到此消息,请始终仔细检查语法!
答案 3 :(得分:0)
如果您使用 laravel 作为 API,使用 vue/Nuxtjs 作为前端,使用 axios 将数据发送到 API.... 使用 try{} catch(){} 块以不正确的方式发送 Laravel 验证错误或通过 axios 以不正确的方式使用 try() catch(){} 块接收错误时,可能会遇到此类错误。 在这里,尝试使用 catch 块进行错误处理。
如果您的 API 路由调用公共函数,它的名称为“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);
}
}
并且前端 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',
};