2016-11-20 64 views
1

我试图将json数据发布到我的Django Rest Framework APIView。 当我使用DRF API后表单时,所有的工作都很好,但是当我尝试使用外部应用程序(Angular2在我的情况下)时,request.data变量是空的。Django Rest Framework APIView发布数据为空

我APIView:

class CreatePaymentView(views.APIView): 

    def post(self, request, *args, **kwargs): 
     print(request.data) 
     return None 

我的网址:

url(r'payment/create', views.CreatePaymentView.as_view(), name='CreatePayment'), 

我Angular2后:

createPayment(): Observable<any> { 
    let body = JSON.stringify({test_data: 'whatever'}); 

    let headers = new Headers({ 
     'Content-Type': 'application/json', 
     'X-CSRFToken': this.cookiesService.csrftoken, 
     'Authorization': `Token ${this.logged.user.token}` 
    }); 
    let options = new RequestOptions({ headers: headers }); 
    return this.http.post(environment.server_url_api + 'payment/create/', body, options) 
     .map(response => { 
      return response; 
     }); 
    } 

我所有的应用程序的其他职位工作得很好,但我所有的其他意见是DRF ModelViewSet,这就是为什么我调整我的错误不是来自CRF。我怀疑django视图有什么不好的地方。

当我读取我的CreatePaymentView中的request变量时,数据是空的JSON而不是{test_data: 'whatever'}

使用DRF发送简单POST的最佳做法是什么?

+0

您可以在浏览器的网络选项卡中调试请求吗?也许问题出在那里,因为后端代码中的一切看起来都很好。 – lucasnadalutti

+0

谢谢@lucasnadalutti您的评论。看起来问题来自带有断点的Visual Studio监视功能。没有看断点的代码,一切正常。 – Ben

回答

0

正如在注释中解释的那样,问题来自带有断点的Visual Studio监视功能。没有看断点的代码,一切正常。