使用带有 jquery $.ajax 调用的 Mozilla FormData

Posted

技术标签:

【中文标题】使用带有 jquery $.ajax 调用的 Mozilla FormData【英文标题】:using Mozilla FormData with jquery $.ajax call 【发布时间】:2012-01-15 14:33:53 【问题描述】:

我正在使用 html5 允许拖放文件,并使用 mozilla FormData() api 在 multipart/form-data 请求中提交表单数据以及文件(FormData 对象有一个 append() 函数我用它附加值和文件)。我使用 jQuery.ajax() 并将数据设置为我创建的 FormData 对象,并将 processData 标志设置为 false,并将 contentType 设置为 "multipart/form-data" ,使用 beforeSend 处理程序调用 jqXHR.setReqeustHeader("Conetent-Type ", "multipart/form-data") 再次。但是在萤火虫中,我可以看到请求标头仍然具有 Content-Type: text/html 。

似乎 $.ajax() 忽略了我的内容类型规范。有没有其他人成功地使用 jQuery.ajax() 来处理 html5 的 FormData api?

我知道我可以在没有 jquery 帮助的情况下制作自己的 XMLHttpReqeust,而且它也可以。但是我喜欢jquery这样的统一框架。

【问题讨论】:

您可以使用 jQuery、IIRC 设置 contentType: 'multipart/form-data' 我做了 contentType: "multipart/form-data" 和调用 jgXHR.setRequestHeader("Content-Type", "multipart/form-data") 的 beforeSend 事件。跨度> 我找到了另一个解决问题的帖子。 ***.com/questions/5392344/… 【参考方案1】:

您应该将contentType 设置为false,而不是真正的内容类型。还将processData 设置为false。 Here is more details.

【讨论】:

以上是关于使用带有 jquery $.ajax 调用的 Mozilla FormData的主要内容,如果未能解决你的问题,请参考以下文章

带有自定义标头的跨域 jquery ajax api 调用未命中服务器

带有 ASP.NET MVC 的 jquery - 调用启用 ajax 的 Web 服务

如何通过 AJAX 调用使用 jQuery 渲染 HTML

可以在 $.when().done() 中使用带有 ajax 调用的函数吗? [复制]

带有 ASP.NET WebMethod 的 Jquery AJAX 返回整个页面

带有 ajax 图像更新的 jquery guillotine 插件