formData为空(通过XMLHttpRequest上传时-纯JavaScript)

时间:2018-11-27 18:56:40

标签: javascript ajax forms xmlhttprequest

我需要与变量数据一起发送一个blob文件, 所以我需要从POST普通

切换
 http1.send("var1=" + var1 + "&var2=" + var2 + "")

formData

但是 formData 完全为空,即使我将其输出到控制台也是如此。 这是我的代码。

var formData = new FormData();
formData.append("customer_id", customer_id)
formData.append("nume", btoa(nume))
formData.append("prenume", btoa(prenume))
formData.append("signature", blob, "signature.jpg");
.....

var phpscript = 'AJAX/ajax_save_form.php'
http1.open('POST', phpscript)
http1.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http1.onreadystatechange = function()
{
    if(http1.readyState == 4)
    {
        if(http1.status == 200)
        {
            var ajaxMessage = http1.responseText    
            alert(ajaxMessage)

        } 
    }
}
http1.send(formData);

console.log(formData);

以下是我的变量的一些典型值:

customer_id = 4
nume = 'Bill'
prenume = 'Gates'
blob = .jpeg file

有人可以帮我追踪吗?我哪里错了? 我在网上浏览了20种不同的解决方案和页面,但没有一个可以解决我的问题。

谢谢!!!

1 个答案:

答案 0 :(得分:1)

FormData对象需要作为多部分/表单数据发送,您将内容类型设置为application/x-www-form-urlencoded
删除对setRequestHeader的呼叫,将设置正确的内容类型。