簡體   English   中英

如何從Angularjs帖子發送JSON數據到Django視圖?

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

我需要使用POST請求從Angularjs向我的Django視圖發送json數據。

我需要使用此json作為json格式從數據庫獲取數據。

我嘗試了一些使用網絡資源的示例:

JS代碼:

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

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')

但它返回403錯誤,有時返回500錯誤(內部服務器錯誤)

服務編號

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

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")

您的json數據應使用JSON.stringify()進行格式化,如下所示:

$http({
   method: 'POST',
   url: '/mycard/list',
   data:  JSON.stringify({test: json})
});
  • 403禁止,可能是因為無效的CSRF令牌
  • 500:您可能未按照后端期望的格式發布數據。 您能否檢查一下並查看給出的錯誤響應?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM