简体   繁体   English

如何从Angularjs帖子发送JSON数据到Django视图?

[英]How to send json data from Angularjs post to Django view?

I need to send json data using a POST request from Angularjs to my Django view. 我需要使用POST请求从Angularjs向我的Django视图发送json数据。

I need to get data from database using this json as json format. 我需要使用此json作为json格式从数据库获取数据。

I tried some examples using from net resources: 我尝试了一些使用网络资源的示例:

JS Code: JS代码:

$http({
   method: 'POST',
   url: '/mycard/list',
   data:  $.param({test: json})
});

Python Code(Django View): Python代码(Django视图):

def product_list(request):
   if len(request.META['QUERY_STRING']) > 0:
       data = request.body
       data = json.loads(data)
       print data
   else:
       f = open('./mytest.txt','r')
       data = f.read()

   return HttpResponse(data, mimetype='application/json')

But it returns 403 error and sometimes it returns 500 error(INTERNAL SERVER ERROR) 但它返回403错误,有时返回500错误(内部服务器错误)

Service Code 服务编号

var promise = $http({
                      method: 'post',
                      url: '/mycard/list',
                      data:data,
                      contentType:'application/json; charset=UTF-8',
                    });
return promise;

Python rest api Python Rest API

@csrf_exempt
@api_view(['GET','POST'])
def product_list(request):

    if request.method == 'POST':
        try:
            stream = StringIO(request.body)
            data = JSONParser().parse(stream)
        except ValueError:
            return Response(json.dumps(ValueError, default=json_util.default))
        return Response(json.dumps(data, default=json_util.default))
    else:        
        return Response("failure")

your json data should be formatted by JSON.stringify() like this: 您的json数据应使用JSON.stringify()进行格式化,如下所示:

$http({
   method: 'POST',
   url: '/mycard/list',
   data:  JSON.stringify({test: json})
});
  • 403 Forbidden maybe because of an invalid CSRF token 403禁止,可能是因为无效的CSRF令牌
  • 500 : You might be not posting the data in the format that the backend is expecting. 500:您可能未按照后端期望的格式发布数据。 Can you please inspect and see what is the error response it is giving. 您能否检查一下并查看给出的错误响应?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM