标签: jquery python firefox multipartform-data html-form-post
我正在尝试通过jquery ajax和FormData提交包含文本和文件字段的表单。它在Chrome上运行良好,但在Firefox 45.0.1和Safari 9.1上获得400 Bad请求。它在firefox 44上运行正常,但是一旦我将其更新为45.0.1就会出现问题。我已经清除了包括缓存,cookie和历史在内的所有内容,但仍无效。
{{1}}
这就是我的请求和响应标头的样子
答案 0 :(得分:0)
我已经解决了这个问题。如果 filename 为空,则Firefox和Safari不会发送 File Field 属性。 在下图中可以清楚地看到,字段名称“post_photo”没有任何属性文件名。
filename
File Field
当我在后端使用Python Flask时,如果缺少表单中的任何内容,则会抛出400 Bad请求。 因此,它处理chrome的唯一原因是它为文件字段发送了 filename 属性,即使它是空的。
我在后端使用此is_file_available = len(request.files.keys()) > 0来解决我的问题。
is_file_available = len(request.files.keys()) > 0