У меня Nodejs на порте 5000 и Vuejs на порте 8080. Я использую vue cli 3. Сначала у меня возникла проблема с CORS, затем я просто исправил проблему с CORS, добавив модуль Koa-cors , Когда я использую КоАП restAPI в vuejs в качестве запроса POST. Выдает ошибку 400 (BAD REQUEST). Почему это идет? Есть ли какие-либо проблемы с синтаксисом при отправке запроса?
RestAPI
import * as Koa from "koa";
import * as Router from "koa-router";
import * as koaBody from "koa-body";
import * as cors from "@koa/cors";
const app = new Koa();
const router = new Router();
const PORT = 5000;
app.use(cors());
app.use(koaBody({multipart: true}));
app.use(router.routes()).use(router.allowedMethods());
router.post('/api/admin_login', async (ctx: Koa.Context, next: () => Promise<any>) => {
var email = ctx.request.body.email;
var password = ctx.request.body.password;
const checkEmailExist = await Admin.findOne({email: email});
if (checkEmailExist != null) {
const pwCorrect = await bcrypt.compare(password, checkEmailExist.password);
if (pwCorrect === true) {
ctx.body = {
status: 200,
message: "Admin login successfully",
data: checkEmailExist,
};
} else {
ctx.body = {
status: 400,
message: "Incorrect password",
}
}
} else {
ctx.body = {
status: 400,
message: "Invalid Email",
};
}
}
});
Vuejs Ax ios Post
methods: {
login() {
const headers = {
'Content-Type': 'multipart/form-data; charset=UTF-8',
"Access-Control-Allow-Origin": "*",
};
this.$axios.post("http://localhost:5000/api/admin_login",
{
email: this.input.email,
password: this.input.password,
}, {
headers: headers
})
.then(response => {
console.log('data', data);
});
}
}
Main. js
import Vue from "vue";
Vue.prototype.$axios = axios;
Vue.config.productionTip = false;
new Vue({
router,
store,
render: h => h(App)
}).$mount("#app");