我正在尝试通过 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_required
def update_game():
print(request.files)
print(request.files.keys())
return "success"
在我看来,我可以正确填写表单数据:
但我在 python 端点得到一个空字典:
虽然非常非常(是的,双重非常)类似的方法已被证明可以工作,但是当发送视频时(从画布发送图像,并等待 AJAX POST 响应)
有人有什么建议吗?我已经尝试将缓存断路器添加到请求中。
DIEA
相关分类