为什么我的 Angular 前端不会将正确的 $http.get 参数传递给 Django 后端?

Why won't my Angular front-end pass correct $http.get parameters to Django back-end?

我有一个由 Angular/Javascript 编写的前端客户端和 Python/Django 编写的后端服务器组成的 Web 应用程序。

我正在尝试从客户端向服务器发出一个简单的 http GET 请求,但它无法正常工作。它失败的原因是由于某些未知原因,参数没有正确传递。

这是在我的客户端上调用的代码行:

  $http.get(API + '/api/getProfile', {'profileId':5}).then(console.log('A'), console.log('B'));

下面是我服务器上的相关代码行:

class GetProfileAPI(views.APIView):
    def get(self, request, *args, **kwargs):
        logger.info("request.get_full_path() = %s" % request.get_full_path())
        profile_id_arg = request.GET.get('profileId')
        logger.info("profile_id_arg = %s (%s)" % (profile_id_arg, type(profile_id_arg)))
        # Do something here if profile_id_arg is not None.

当我 运行 这段代码时,我希望服务器端的 profile_id_arg 是字符串 5。但是看看我得到的输出:

request.get_full_path() = /api/getProfile
profile_id_arg = None (<type 'NoneType'>)

为什么 profile_id 没有被正确接收,我该如何解决这个问题?代码示例会有所帮助。

HTTP GET 请求不能包含要发布到服务器的数据。但是,您可以向请求添加查询字符串。

 $http.get(API + '/api/getProfile', {params:{'profileId':5}})
      .then(function (response) { /* */ })...

$http({ 
     url: API + '/api/getProfile', 
     method: "GET",
     params: {'profileId':5}
  });

check here1 and check here2