在邮递员中,我可以获得查询对象 enter image description here
但是通过axios enter image description here
我的请求代码是
<template>
<div id="login">
<mt-field label="用户名" placeholder="请输入用户名" v-model="username"></mt-field>
<mt-field label="密码" placeholder="请输入密码" type="password" v-model="password"></mt-field>
<mt-button type="primary" @click="login">primary</mt-button>
</div>
</template>
<script>
import Axios from 'axios'
export default {
name: 'login',
data () {
return {
username: '',
password: ''
}
},
mounted(){
console.log(Axios)
},
methods: {
login(){
var username = this.username;
var password = this.password;
Axios({
method: 'post',
url: "api/user/login",
data: {
username: username,
password: password,
},
}).then((res)=>{
console.log(res)
if(res.data.code !== 200) {
console.log("登录失败")
}
});
}
}
}
</script>
后端:
'POST /api/user/login': async (ctx, next) => {
ctx.response.type = 'application/json;charset=utf-8';
console.log(ctx.request.query)
await Db.User.login(ctx.query)
.then(function(res){
ctx.response.body = res
});
}
我认为koa2 ctx.request.query存在一些问题,如果它只收到特定的&#39;形式&#39;
答案 0 :(得分:0)
在Postman示例中,参数在查询字符串中传递:
POST /api/user/login?username=aa&password=aa
这意味着您可以通过ctx.request.query
访问它们。
在Axios示例中,数据将在请求正文中传递(这对于POST请求更为常见),这意味着您需要koa-bodyparser
之类的内容并通过{访问数据{1}}。