2017-08-02 33 views
3

我使用同构提取向Django视图发送POST请求。同构提取和Django视图

body : "{"email":"[email protected]","password":"11"}" 
credentials : "same-origin" 
headers : 

Accept : "application/json" 
Content-Type : "application/json" 
X-CSRFToken : "mudIfipiyLUao2ZWwoEotFOUknYeVpZASNpQQ2IdadRVOe0a9n5tUqcKzwtrDuWX" 
method : "POST" 

当我发送此请求给DRF视图,我可以使用request.data读取数据。但是,当我将相同的数据发送到Django视图时,request.POST是空的。

可能是什么原因?

+3

请显示您在客户端和服务器中使用的实际代码。 –

回答

1

看起来,同构提取可能不是扮演关键角色,为什么request.POST是空的,而是request.POST似乎只填充表单数据,而不是JSON数据。这是通过这句话从Django REST Framework文档支持:

它(request.data)支持REST架构灵活的请求解析,而不仅仅是支持表单数据

另外,还要注意从马尔科姆Tredinnick意见:

如果你正在做基于REST的Web服务的东西......你应该忽略request.POST

这是参考DRF为您处理大量幕后问题的事实,例如序列化事物并分配给不同的变量,以及与纯Django等价物互操作时,您可能会得到奇怪的结果。