Django Rest框架APIView post数据为空
我正在尝试将json数据发布到我的Django Rest框架APIView。 当我使用DRFAPI post表单时,一切都很好,但是当我尝试使用外部应用程序(在我的例子中是Angular2)时,Django Rest框架APIView post数据为空,post,view,django-rest-framework,Post,View,Django Rest Framework,我正在尝试将json数据发布到我的Django Rest框架APIView。 当我使用DRFAPI post表单时,一切都很好,但是当我尝试使用外部应用程序(在我的例子中是Angular2)时,request.data变量为空 我的看法: class CreatePaymentView(views.APIView): def post(self, request, *args, **kwargs): print(request.data) return
request.data
变量为空
我的看法:
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;
});
}
createPayment():可观察{
let body=JSON.stringify({test_data:'whatever'});
让标题=新标题({
“内容类型”:“应用程序/json”,
“X-CSRFToken”:this.CookieService.CSRFToken,
'Authorization':`Token${this.logged.user.Token}`
});
let options=newrequestoptions({headers:headers});
返回此.http.post(environment.server_url_api+'payment/create/',body,options)
.map(响应=>{
返回响应;
});
}
我的应用程序的所有其他帖子都运行良好,但我的所有其他视图都是DRF ModelViewSet,这就是为什么我认为我的bug不是来自CRF。我怀疑我的django观点有问题
当我在我的CreatePaymentView
中读取request
变量时,数据是空的JSON,而不是{test\u data:'whatever'}
使用DRF发送简单帖子的最佳做法是什么?如评论中所述,问题似乎来自带断点的Visual Studio watch功能。如果不使用断点查看代码,一切正常。能否在浏览器的“网络”选项卡中调试请求?也许问题就在这里,因为您的后端代码似乎一切正常。谢谢@lucasnadalutti的评论。问题似乎来自带有断点的VisualStudio监视功能。在不使用断点查看代码的情况下,一切正常。