我正在尝试通过 AJAX 将表单数据的内容发送到 python-flask 应用程序。这是 Javascript 代码的基本部分function sendFormInfo(){ var formInfo = document.getElementById('formInfo'); var elems = formInfo.elements; return new Promise(function(resolve, reject) { var getFd = toFormFromElems(elems); getFd .then(function(fd){ fd.set('my_key', 'my_value') inspectFormData(fd); var timestamp = (new Date()).getTime(); $.ajax({ url: "/updategame" + '?_=' + timestamp, type : "POST", processData: false, contentType: false, dataType: "text", data : fd }) .done(function(respPost) { resolve(respPost) }) .fail(function(data) { console.log("Post request failed.") console.log(data); }); }) })}function inspectFormData(inputFormData){ for(var pair of inputFormData.entries()) { console.log(pair[0]+ '-> '+ pair[1]); }}function toFormFromElems(elems){ return new Promise(function(resolve, reject){ var fd = new FormData(); for (var i = 0, elem; elem = elems[i++];){ // console.log(elem.id + " -> " + elem.value); fd.set(String(elem.id), String(elem.value)); } // console.log(fd); resolve(fd); })}以及 python 的:@main.route("/updategame", methods=["POST"])@login_requireddef update_game(): print(request.files) print(request.files.keys()) return "success"在我看来,我可以正确填写表单数据:但我在 python 端点得到一个空字典:虽然非常非常(是的,双重非常)类似的方法已被证明可以工作,但是当发送视频时(从画布发送图像,并等待 AJAX POST 响应)有人有什么建议吗?我已经尝试将缓存断路器添加到请求中。
1 回答
DIEA
TA贡献1820条经验 获得超2个赞
如果您向 Flask 发送带有表单数据的 POST 请求,它将到达request.form,而不是 request.files ,后者用于文件上传,从而解释了视频上传有效的原因。
添加回答
举报
0/150
提交
取消