在IE 8/9回退FORMDATA [英] Fallback for FormData in IE 8/9

查看:676
本文介绍了在IE 8/9回退FORMDATA的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<一个href="https://developer.mozilla.org/en/DOM/XMLHtt$p$pquest/FormData/Using_FormData_Objects">FormData在IE中8/9不存在,但我需要在这些浏览器的功能。有一个漂亮的回退呢?

FormData does not exist in IE 8/9 but I need that functionality in those browsers. Is there a nice fallback for this?

我会尝试发送过JSON数据,但我需要一个文件传过来给服务器。我附上该文件的 FORMDATA 在现代浏览器所看到的 XHR 请求。因为 FORMDATA 并不在IE 8/9存在这显然会失败。

I would try to send over json data, but I need to pass over a file to the server. I append this file to the formData in modern browsers and just submit an XHR request. Because FormData does not exist in IE 8/9 this obviously fails.

// 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!');
    });

也许还有一个办法是创造JS一个假的表单对象,然后将数据追加到?

Maybe an alternative is to create a fake form object in js then append the data to that?

推荐答案

我知道,只有一个可能的解决方案,但它不是真正的1-1回退的IE。有发送的文件,因为你不能绑定输入域在旧的浏览器,就像在一个现代的使用FORMDATA没有可能的通信API。但是你可以使用iframe发送整个表单。对于这种情况,你可以使用 jquery.form 插件,支持XHR的DataForm和iframe(数据发送带有IFRAME时,浏览器不FORMDATA API支持)。

I know only one possible solution, but it's not really 1-1 fallback for IEs. There are no possible communication API for sending files, because you cannot bind input fields in old browsers, like in a modern ones using FormData. But you can send whole form using an iframe. For this case you can use jquery.form plugin that support XHR DataForm and iframe (data sends with iframe when browser do not FormData API support).

这篇关于在IE 8/9回退FORMDATA的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆