[英]django post request is not showing javascript blob object in terminal
我已经在墙上敲了好几个小时。 我正在尝试使用来自本示例https://webaudiodemos.appspot.com/AudioRecorder/的源代码的recorder.js
现在,我想对其进行修改,以使用户可以听到播放给他们的音频,然后y如果愿意,可以将其上载到服务器。 通过将方法createObjectURL(blob)
的返回值添加到音频元素,可以播放音频。 大
现在,我只需要编写一个发布请求,并将其发送到我的django实例即可在视图中处理它……这很奇怪。
我用jQuery发布这样的ajax请求...
$(document).ready(function () {
$("#submit_audio_file").click(function () {
var data = new FormData();
data.append("csrfmiddlewaretoken", $("[name=csrfmiddlewaretoken]").val());
data.append("audio_file", blob, "test");
// Display the key/value pairs
for(var pair of data.entries()) {
console.log(pair[0]+ ', '+ pair[1]);
}
$.ajax({
type: "POST",
url: $("#post_url").val(),
data: data,
processData: false, // prevent jQuery from converting the data
contentType: false, // prevent jquery from changing something else as well
success: function(response) {
alert(response);
}
});
})
});
当我发出此请求时,我会在控制台中看到此信息...
csrfmiddlewaretoken, 3YBQrdOUkquRDD5dN0hTJcUXYVFiNpSe
audio_file, [object File]
然后在我的django CBV中,在第一行中放置一个print request.POST.items()
,这样我就可以看到进来的东西。在我的终端中,我看到了这个...
[(u'csrfmiddlewaretoken', u'mymiddlewaretokenvalue')]
发布请求中根本没有audio_file
密钥。 为什么会在javascript控制台中显示然后在django请求中消失?
将来我还会看到一个潜在的问题,因为我认为javascript控制台只是在打印[object File]
的字符串,这显然不会执行我想要的操作。
有什么下一步的想法吗?
正如Daniel Roseman所写,上载的文件最终位于request.FILES
。 还有一件事-来自jQuery文档:
从jQuery 1.6开始,您可以传递false来告诉jQuery不要设置任何内容类型标头。
和Django文档规定:
请注意,仅当请求方法为POST并且发布请求的表单具有属性enctype =“ multipart / form-data”时,request.FILES仅包含数据。 否则,request.FILES将为空。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.