我正在使用来自其他框架的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。
答案 0 :(得分:1)
为什么在get_user_id中使用两个return语句?您点击了第一个return语句,它不等待承诺被兑现。基本上,您发送get请求,但不等待响应。另外,我建议创建axios的基本实例作为vue插件。