Javascript Can';无法从Django获取POST数据(从React发送)
我花了几个小时来解决这个问题。问题是我无法发送POST的身体数据。我从服务器收到500个错误 这是我对React Native的HTTP请求(我想我可能有错误的axios请求)。http正文上可能有问题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==
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请求发布图像的最佳方式是什么就这一点而言,如果你感兴趣的话,我刚刚开始了一个丰富的问题:你是生活服务器:)你是生活服务器:)