Javascript Can';无法从Django获取POST数据(从React发送)

Javascript Can';无法从Django获取POST数据(从React发送),javascript,django,django-rest-framework,django-views,axios,Javascript,Django,Django Rest Framework,Django Views,Axios,我花了几个小时来解决这个问题。问题是我无法发送POST的身体数据。我从服务器收到500个错误 这是我对React Native的HTTP请求(我想我可能有错误的axios请求)。http正文上可能有问题 export const createCloth = (token, hType, clothObject) => async dispatch => { let headers = { 'Authorization': `JWT ${token}`}; if(hType==

我花了几个小时来解决这个问题。问题是我无法发送POST的身体数据。我从服务器收到500个错误

这是我对React Native的HTTP请求(我想我可能有错误的axios请求)。http正文上可能有问题

export const createCloth = (token, hType, clothObject) => async dispatch => {
  let headers = { 'Authorization': `JWT ${token}`};
  if(hType==1) {
    headers = { 'Authorization': `JWT ${token}`};
  } else if (hType==2) {
    headers = { 'Authorization': `Bearer ${token}`};
  }

  let {image, text, clothType, ... , onlyMe} = clothObject;

  console.log(text); <- printing ok
  console.log(bigType); <- printing ok

  let response = await axios.post(`${ROOT_URL}/clothes/create/`, {

    text, clothType, ..., onlyMe
  }, {headers});

  console.log(response.data); <<< 500 HTTP error
export const createCloth=(令牌、hType、clothObject)=>async dispatch=>{
let headers={'Authorization':'JWT${token}}};
if(hType==1){
headers={'Authorization':'JWT${token}}};
}else if(hType==2){
headers={'Authorization':'Bearer${token}}};
}
设{image,text,clothType,…,onlyMe}=clothObject;

默认情况下,axios将请求数据序列化为json。您可以使用
json.loads
对其进行反序列化

import json
data = json.loads(request.body.decode('utf-8'))

或者,如果您想使用
request.POST
,请参阅[axios docs],以获取以
应用程序/x-www-form-urlencoded
格式发送数据的选项。

默认情况下,axios将请求数据序列化为json。您可以使用
json.loads
对其进行反序列化

import json
data = json.loads(request.body.decode('utf-8'))

或者,如果要使用
request.POST
,请参阅[axios文档]有关以
应用程序/x-www-form-urlencoded
格式发送数据的选项。

如果您使用Djangorest框架构建视图,您应该通过
请求访问数据。数据
而不是
请求。POST
。DRF将自动为您解析json,并允许您访问类似yo的词典您希望
请求。POST
具有

这也适用于其他http方法,不同于
request.POST


如果您使用Djangorest框架构建视图,您应该通过
request.data
而不是
request.POST
来访问数据。DRF将自动为您解析json,并为您提供对字典的访问权限,就像您希望
request.POST
拥有的那样

这也适用于其他http方法,不同于
request.POST


WOW好极了。我可以再问一个问题吗?
application/x-www-form-urlencoded
格式会以任何方式损害请求吗?我正在发送一个图像,不熟悉
application/x-www-form-urlencoded
,或者我反序列化图像,这无关紧要吗?对于非ajax请求,使用
多部分/表单数据
,而不是
application/x-www-form-urlencoded
用于上传。我不确定用ajax请求发布图像的最佳方式是什么。就此而言,如果您感兴趣,我刚刚在这里开始了一个丰富的问题:哇,太棒了。我能再问一个问题吗?
application/x-www-form-urlencoded
格式会对请求造成任何伤害吗?我发送的图像不熟悉
application/x-www-form-urlencoded
,或者我将图像反序列化,这无关紧要?对于非ajax请求,您使用
multipart/form data
而不是
application/x-www-form-urlencoded
进行上传。我不确定用ajax请求发布图像的最佳方式是什么就这一点而言,如果你感兴趣的话,我刚刚开始了一个丰富的问题:你是生活服务器:)你是生活服务器:)