Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用AJAX Javascript发送纯文本表单数据_Javascript_Python_Ajax_Flask - Fatal编程技术网

使用AJAX 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

我试图通过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端点得到一个空的dict:

虽然一个非常(是的,双重非常)相似的方法已经被证明是有效的,但是当发送视频时()


有人有什么建议吗?我已经尝试在请求中添加缓存断路器。

如果向flask发送带有表单数据的POST请求,它将到达,而不是request.files,这是用于文件上载的,因此解释了视频上载工作的原因