使用AJAX Javascript发送纯文本表单数据
我试图通过AJAX将表单数据的内容发送到python flask应用程序。下面是Javascript代码的基本部分使用AJAX Javascript发送纯文本表单数据,javascript,python,ajax,flask,Javascript,Python,Ajax,Flask,我试图通过AJAX将表单数据的内容发送到python flask应用程序。下面是Javascript代码的基本部分 function sendFormInfo(){ var formInfo = document.getElementById('formInfo'); var elems = formInfo.elements; return new Promise(function(resolve, reject) { var getFd = toFormFromElem
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端点得到一个空的dict:
虽然一个非常(是的,双重非常)相似的方法已经被证明是有效的,但是当发送视频时()
有人有什么建议吗?我已经尝试在请求中添加缓存断路器。如果向flask发送带有表单数据的POST请求,它将到达,而不是request.files,这是用于文件上载的,因此解释了视频上载工作的原因