使用django和vue时,api响应为null

时间:2019-02-11 00:07:25

标签: python django vue.js axios

我正在使用来自其他框架的api,当我从api到达URL时,它表明它是正确的。但是当我使用它时,响应似乎为空。 我将两个项目(前vuejs和后django)托管在不同的端口(分别为8080和8000)中。允许CORS。

我尝试使用fetch或jquery之类的其他工具,但似乎是相同的。

Js:

export class APIService {
    contructor() {}

    get_user_id(){
        const url = `http://localhost:8000/api/v1/user-id/`;
        return axios.get(url).then(function (response) {
            console.log(response); // For testing
            return response.data;
        });
    }
}

该网址的Django api视图:

class UserIdLoggedView(APIView):
    def get(self, request):
        user = request.user
        return Response({
            'id': user.id,
        })

在这种情况下,我不需要序列化器。

这是Django其余显示方式:

    {    HTTP 200 OK
    Allow: GET, HEAD, OPTIONS
    Content-Type: application/json
    Vary: Accept

    {
        "id": 1
    }

这是控制台响应的输出(只是数据部分)

data:
   id: null

而不是预期的返回id = 1,而是返回null。

1 个答案:

答案 0 :(得分:1)

为什么在get_user_id中使用两个return语句?您点击了第一个return语句,它不等待承诺被兑现。基本上,您发送get请求,但不等待响应。另外,我建议创建axios的基本实例作为vue插件。