Javascript 对于使用AngularJS从Safari发出的补丁请求,django REST API请求中的request.data为空

Javascript 对于使用AngularJS从Safari发出的补丁请求,django REST API请求中的request.data为空,javascript,python,angularjs,django,safari,Javascript,Python,Angularjs,Django,Safari,我通过web浏览器(chrome/safari)向Django Rest框架发送补丁请求。 当通过Google Chrome触发API()时,我试图从Django后端访问数据request.data值时,我可以读取数据。但是当从safari浏览器触发的同一补丁请求没有给我request.data(显示为空)时 JS调用购物车API: var order = {}; order.num_cases = 8; var absloutePatchURL = '/cart/'+

我通过web浏览器(chrome/safari)向Django Rest框架发送补丁请求。 当通过Google Chrome触发API()时,我试图从Django后端访问数据
request.data
值时,我可以读取数据。但是当从safari浏览器触发的同一补丁请求没有给我request.data(显示为空)时

JS调用购物车API:

    var order = {};
    order.num_cases = 8;

    var absloutePatchURL = '/cart/'+order.cartID;
    window.console.log('Update cart absolute URL:',absloutePatchURL);
    $http.patch(absloutePatchURL,order, {data:JSON}). success(function(data, status, headers, config) {
        window.console.log("Your cart is updated successfully");                
      }).error(function(data, status, headers, config) {
        toastr.error('Sorry, unable to update your item to the cart. Please try later.');
    });
申请详情:

URL: https://test.mysite.com/cart/
Request Type: PATCH
Request Data: {"num_cases":6}   
访问Django上请求对象上通过PDB请求的数据时

要访问的Django代码:

class CartViewSet(CartMixin, ModelViewSet):

    def update(self, request, *args, **kwargs):

        import pdb
        pdb.set_trace()

        logger.debug("Request Data: {0}".format(request.data))

        return ModelViewSet.update(self, request, *args, **kwargs)
从Chrome请求Django控制台日志时:

->返回ModelViewSet.update(self、request、*args、**kwargs)
(Pdb)
(Pdb)request.data
从SAFARI请求Django控制台日志时:


(Pdb)request.data

确保将内容类型设置为
application/json
。rest框架似乎将其视为
application/x-www-form-urlencoded

,您还需要显示有关如何触发此操作的代码。浏览器不会以本机方式发送修补程序,因此您必须有一些自定义代码。已使用更多代码快照添加更新了详细信息。请帮我想想。@Alasdair-我已经更新了code@DanielRoseman-我已经在原始版本中发布了代码片段,所以您是否设法修复了此问题?我也有同样的问题,但是有一个http.put
-> return ModelViewSet.update(self, request, *args, **kwargs)
(Pdb) 
(Pdb) request.data
<QueryDict: {u'{"num_cases":8}': [u'']}>
<QueryDict: {}>
(Pdb) request.data
<QueryDict: {}>