Javascript Flask request.get.args-缺少一个arg

Javascript Flask request.get.args-缺少一个arg,javascript,python,node.js,Javascript,Python,Node.js,我正在从我的网站发送一个帖子请求,其中包含一些表单数据: var formData = new FormData(); formData.append('file',file); formData.append('timestamp', window.performance.now()) console.log(formData) console.log(window.performance.now()) var xhr = new XMLHttpRequest();

我正在从我的网站发送一个帖子请求,其中包含一些表单数据:

  var formData = new FormData();
  formData.append('file',file);
  formData.append('timestamp', window.performance.now())
  console.log(formData)
  console.log(window.performance.now())
  var xhr = new XMLHttpRequest();
  xhr.addEventListener("load", () => {
    console.log("asdf");
  });
  xhr.open("POST", "http://flaskmin.run.aws-usw02-pr.ice.predix.io/receivedoc");
  xhr.send(formData);
其中
文件
是实际的Excel文件

我正在用Flask服务器处理它:

@app.route('/receivedoc', methods=['POST', 'GET', 'OPTIONS'])
@crossdomain(origin='*')
def upload_file():
    if request.method == 'POST':
        print(request.files)
        print("Timestamp" + request.args.get('timestamp'))
        if 'file' not in request.files:
            flash('No file part')
            return redirect(request.url)
        file = request.files['file']
        #Do stuff with the file
奇怪的是,服务器确实收到了文件,但没有收到时间戳。当我试图打印它时,我得到错误
TypeError:必须是str,而不是NoneType
。当我在网站上执行
console.log(window.performance.now())
时,我确实在Chrome开发工具控制台上看到了时间,但它不会到达Flask服务器,停留在
None
。我错过了什么?我也尝试过
formData.append('timestamp',String(window.performance.now())
,但都没有用

更新

所以我添加了一些日志记录,有一些奇怪的事情正在发生。我正在做:

   fileUpload: function(file) {
      console.log("fileUpload function called")      
      var formData = new FormData();
      formData.append('file',file);
      formData.append('t_stamp123', 'test123')
      console.log(formData)
      console.log(formData.files)
      console.log(formData.file)
      console.log(file)
      var xhr = new XMLHttpRequest();
      xhr.open("POST", "http://localhost:7733/receivedoc");
      xhr.send(formData);
      var xhr1 = new XMLHttpRequest();
这将通过以下方式调用:

  self.fileUpload(uploadComponentId.files[0])
uploadComponentId
是一种
元素。奇怪的是,我的主控台上有这样的节目:

fileUpload function called
pacing-view.html:60 FormData {}
pacing-view.html:61 undefined
pacing-view.html:62 undefined
pacing-view.html:63 File(114688) {name: "GL_Details_03212018_094512.xls", lastModified: 1521640039000, lastModifiedDate: Wed Mar 21 2018 14:47:19 GMT+0100 (CET), webkitRelativePath: "", size: 114688, …}
然而,服务器确实获得了文件,我可以将其写入磁盘(我现在正在本地主机上运行所有操作)!!!即使
formData
看起来是空的,文件还是可以传递到服务器,但是时间戳没有?哇

更新2


当我删除
formData.append('file',file)时行,文件不会被发送到服务器,我会得到一个
UnboundLocalError:赋值前引用的局部变量'filename'。
。因此,我肯定不会将文件发送到代码中的其他地方,它必须使用
formData
确定,因此
请求中的
formData
可以通过
请求访问。form['timestamp']
,它不会存储为
arg
,可能是一个特殊的字段名。你能试着把它命名为
tstamp
然后再试一次吗?如果你不能在
timestamp
字段下发送一个常规的
string
,那么除了这个我就想不出别的了。我在两个地方都将它重命名为
t\u stamp123
,不起作用:/你能试着发送'timestamp':'test123'并让我知道它是如何进行的吗?我会在几秒钟后更新这个问题,这很疯狂,但是为什么你不能将console.log formdata字段记录到console中?当你在js端使用console.log(formdata.timestamp)时,你能正确地看到它吗?不。。。不知道为什么我不能将其写入控制台。。。看起来完全是空的。如果你能成功地在烧瓶上获得时间戳,那就意味着你可以控制台。用错误的方式记录。是的,我想,但我不介意说实话。。。服务器获取信息的主要内容:D