gpt4 book ai didi

javascript - Django request.DATA 获取损坏的值

转载 作者:太空宇宙 更新时间:2023-11-03 15:57:34 24 4
gpt4 key购买 nike

我的问题

我的问题是,当通过 post 向 Rest 框架 api 发送 json 文档时,该文档会转换键并添加一个空值。

文件.js

function SaveFiles(task_id) {
data = {'taskid': task_id,'file_list': file_list};
$.ajax({
url: '/tarjet/save.../',
type: 'POST',
data: JSON.stringify(data),
async:false,
success:function(data){

},
complete:function(){},
error:function (xhr, textStatus, thrownError){

}
});

}

api.py

class SaveTaskFiles(APIView):
authentication_classes = (TokenAuthentication,)

def post(self, request):
a = request.DATA

JavaScript 输出

{"taskid":"1198792","file_list":[{"id":0,"file_name":"image2.png","upload_date":"11/16/2016","file_description":"","download_link":"a6175ab4-ac58-11e6-8e10-00dbdfd54837.png","isdeactivate":"0","sft_f":"svt"}]}

实际输入请求.DATA

{u'{"taskid":"1198792","file_list":[{"id":0,"file_name":"image2.png","upload_date":"11/16/2016","file_description":"","download_link":"a6175ab4-ac58-11e6-8e10-00dbdfd54837.png","isdeactivate":"0","sft_f":"svt"}]}': [u'']} 

是一个Querydict类型。

我无法解释为什么我的json文件成为一个键,并且这个值是一个空列表,我已经使用request.body解决了它,但我知道这不是约定。我尝试过转储、加载,但没有成功,虽然我可以获得 key 并使用它,但我认为这不是一个好主意。

预先非常感谢您 ¡

最佳答案

您需要发送正确的内容类型 header ,以告诉 DRF 您正在发送 JSON 文档,而不是纯字符串。

 $.ajax({
contentType: 'application/json',
...
});

请参阅DRF parsers docs .

关于javascript - Django request.DATA 获取损坏的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40644756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com