纯js实现上传文件小工具IE兼容性问题

https://www.jianshu.com/p/5147e36cf19c
这里写道非常方便的上传文件代码,但是用IE内核就无法上传文件,直接是不发送数据,不知道哪里出现了问题。直接不POST

chorme内核使用非常好。

也尝试过通过meta强制使用chorme内核,但是不行

<meta name="renderer" content="webkit"/>
<meta name="force-rendering" content="webkit"/>
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/>

需要解决的上传代码如下

function easyUpload(){
  var input = document.createElement("input");
  input.type = "file";
  input.click();
  input.onchange = function(){
    var file = input.files[0];
    var form = new FormData();
    form.append("file", file); //第一个参数是后台读取的请求key值
    form.append("fileName", file.name);
    form.append("other", "666666"); //实际业务的其他请求参数
    var xhr = new XMLHttpRequest();
    var action = "http://localhost:8080/upload.do"; //上传服务的接口地址
    xhr.open("POST", action);
    xhr.send(form); //发送表单数据
    xhr.onreadystatechange = function(){
      if(xhr.readyState==4 && xhr.status==200){
        var resultObj = JSON.parse(xhr.responseText);
        //处理返回的数据......
      }
    }
  }
}

后台代码

<?php
//print_r($_FILES);
echo json_encode($_FILES);
sleep(5);
?>

调试下,应该是 XMLHttpRequest 兼容问题
https://blog.csdn.net/hongtengfei523/article/details/48861669

可以尝试 xhr 设置一下 header 的 content-type 试试