在IE 8/9中回退FormData

Mik*_*den 32 javascript ajax xmlhttprequest fileapi

在IE 8/9中不存在FormData,但我需要在这些浏览器中使用该功能.这有一个很好的后备吗?

我会尝试发送json数据,但我需要将文件传递给服务器.我将此文件附加到formData现代浏览器中,只需提交XHR请求即可.因为FormData在IE 8/9中不存在,这显然是失败的.

// I cant seem to get this to work with a file.
$.ajax({
    url: '/genericHandlers/UploadDocsFile.ashx',
    type: "POST",
    data: model.toJSON(),
    contentType: 'application/json'
    }).done(function  (data) { 
       log('stuff happened!');
    });
Run Code Online (Sandbox Code Playgroud)

也许另一种方法是在js中创建一个假的表单对象然后将数据附加到那个?

Dmi*_*kin 8

我只知道一种可能的解决方案,但它并不是真正的IE回归.没有可能的通信API用于发送文件,因为您无法在旧浏览器中绑定输入字段,例如使用FormData的现代浏览器.但您可以使用iframe发送整个表单.对于这种情况,您可以使用支持XHR DataForm和iframe的jquery.form插件(当浏览器不支持FormData API时,数据与iframe一起发送).