我有一个Web应用程序,由用Angular / Javascript编写的前端客户端和用Python / Django编写的后端服务器组成。
我正在尝试从客户端向服务器执行简单的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
没有得到正确接收?我该如何解决这个问题?代码示例会有所帮助。
答案 0 :(得分:2)
HTTP GET请求不能包含要发布到服务器的数据。但是,您可以在请求中添加查询字符串。
$http.get(API + '/api/getProfile', {params:{'profileId':5}})
.then(function (response) { /* */ })...
OR
$http({
url: API + '/api/getProfile',
method: "GET",
params: {'profileId':5}
});