setrequestheader open example ejemplo javascript xmlhttprequest activexobject form-data

javascript - open - FormData en IE8/9



xmlhttprequest post (1)

FormData en IE solo es compatible con IE10, después de investigar un poco, la mejor solución para esto (mi opinión) sería usar ajaxForm: http://malsup.com/jquery/form/ funciona perfectamente en IE8 / 9, no estoy seguro de IE7

He implementado esta secuencia de comandos para cargar archivos con ajax, funciona perfectamente en otros navegadores, excepto en el explorador. Noté que FormData no es compatible con IE9 y menos. ¿Hay alternativas para FormData en IE y quiero usar JavaScript limpio?

function doObjUploadExplorer(url, lnk_id, file, progress, success, content, frm, div_dlg, start_func){ var file_input = null, frm_data = new FormData(), req; try { //firefox, chrome, safari etc req = new XMLHttpRequest(); } catch (e) { // Internet Explorer Browsers req = new ActiveXObject("Microsoft.XMLHTTP"); } if (document.getElementById(file)) { file_input = document.getElementById(file); for (var i = 0; i < file_input.files.length; ++i) { frm_data.append(file, file_input.files[i]); } } req.upload.addEventListener(''progress'', function(e) { //Event called while upload is in progress if (progress !== undefined && e.lengthComputable) { $(''#'' + progress).html(''<font>Uploading... '' + Math.round((e.loaded / e.total) * 100) + ''%</font>''); } }); req.upload.addEventListener(''load'', function(e) { //Event called when upload is completed $(''#'' + progress).html(''<font>Retrieving updated data...</font>''); }); req.upload.addEventListener(''error'', function(e) { //Event called when an error is returned by the server alert(''An error has occurred...''); }); req.addEventListener(''readystatechange'', function(e) { if (this.readyState === 4) { if (this.status === 200) { if (content !== undefined) { $(''#'' + content).html(this.response); } if (success !== undefined) { showChkMark(success); } } else { console.log(''Server replied with HTTP status: '' + this.status); } if (progress !== undefined) { $(''#'' + progress).hide(); } if (div_dlg !== undefined) { $(''#'' + div_dlg).dialog(''close''); } $(''#'' + file) .attr(''disabled'', false) .val(''''); } }); if (progress !== undefined) { $(''#'' + progress).show(); } $(''#'' + file).attr(''disabled'', true); url += ( url.indexOf(''?'') === -1 ? ''?'' : ''&'' ); url += ''lnk_id='' + lnk_id + ''&file='' + file; req.open(''POST'', url); req.setRequestHeader(''Cache-Control'', ''no-cache''); if (start_func !== undefined) { start_func.apply(); setTimeout(function() { req.send(frm_data); }, 500); } else { req.send(frm_data); }}