2017-04-25 98 views
0

koa2 ctx.request.query沒有被定義當我做一個Ajax請求,但它工作正常,當我做這個'後'在郵遞員的要求。koa2 ctx.request.query沒有定義,當我做一個ajax請求,但在郵遞員工作正常

在郵遞員,我可以得到查詢對象 enter image description here

但通過愛可信 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一些問題,如果只接收特定的「形式」

回答

0

在你的郵差例如,這些參數在查詢字符串中傳遞:

POST /api/user/login?username=aa&password=aa 

這意味着您可以通過ctx.request.query訪問它們。

在您的Axios示例中,數據將在請求正文中傳遞(POST請求更常見),這意味着您需要諸如koa-bodyparser之類的內容並通過ctx.request.body訪問數據。

相關問題