在setRequestHeader调用之后,图像src没有更新

时间:2016-12-24 17:38:34

标签: javascript ajax

我有两个AJAX函数:一个用于图像文件上传,一个用于表单信息上传。

文件上传

function uploadFile(insertNodeID, inputFileID){

var img = document.getElementById(inputFileID).files[0];

var form_data = new FormData();
form_data.append('file[]', img, img.name);

var objXML = new XMLHttpRequest();
objXML.onprogress = updateProgress; 

objXML.onload = function() {
    if(objXML.readyState==4 && objXML.status==200) {

        if(objXML.responseText !== 'no'){
            document.getElementById(insertNodeID).src = objXML.responseText;
        }
        else{
            errorInOut('There was a problem uploading the file.');
        }
    }
};

objXML.open('POST', baseURL+'ajax/admin_fileupload/', true);
objXML.send(form_data);

表单信息上传

function uploadFormInfo(strURL, strData, type) {

strURL = baseURL+'ajax/'+strURL+'/';

var objXML = new XMLHttpRequest();

objXML.onreadystatechange = function() {
    if (objXML.readyState == 4 && objXML.status == 200) {
        returnXML(objXML.responseText, type);
    }
};

objXML.open("POST", strURL, true);
objXML.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
objXML.send(strData);

他们都独立完美地工作。

我遇到的问题是当我调用uploadFormInfo(),然后调用uploadFile()时,document.getElementById(insertNodeID).src不会呈现上传的图像。它仍然将图像上传到服务器,responseText是图像的正确路径。我在插入新图像的时候在id的.src上做了一个console.log,并且.src是正确的但是它在Chome inspect中的元素选项卡中永远不会改变。它在我调用uploadFormInfo()之前也可以正常工作。

我已尝试过多次(为uploadFile发送单独的请求标头)但没有任何效果。

我很难过。

0 个答案:

没有答案