2017-01-02 65 views
-1

我的html代码:如何用JavaScript发送XMLHttpRequest文件?

<input type="file" id="attachFileId"" name="contactUs_attach" /> 

我的Java脚本代码:

var userfile=document.getElementById('attachFileId').files[0]; 
var attchment = new FormData(); 
attchment.append("userfile",userfile); 
var xhr = new XMLHttpRequest(); 
xhr.open('POST','/cgi-bin/upload.cgi'); 
xhr.setRequestHeader('Content-Type',"multipart/form-data"); 
xhr.onload = function() { 
    if(xhr.responseText==="y") { 
    alert("sucess!"); 
    } 
}; 
xhr.send(attchment); 

上面的代码并没有为我工作。有人可以帮助解决这个问题吗?

+0

你在哪里打电话?显示完整的代码上下文如果您在不使用事件处理程序的情况下运行它,它将在用户选择文件之前运行。抛出什么错误?需要比“不起作用”更多的细节,这是一个几乎毫无意义的技术问题陈述。还需要几分钟时间才能通过[mcve] – charlietfl

+0

我在看什么?当你上传一个文件? – Prajwal

+0

欢迎来到Stack Overflow。 @charlietfl是对的,你需要通过提供上下文来帮助我们,并显示你已经做了什么来尝试和修复它。 – Mikkel

回答

0

删除此行:

xhr.setRequestHeader('Content-Type',"multipart/form-data"); 

多部分形式数据报头具有在所述内容以指定边界标记,并且可以不这样做,因为你不生成边界你自己(FormDataXHR正在这样做)。

通过不自己指定标题,您可以让XHR根据FormData对象为您生成它。