JavaScript-“找不到图片”,除非我刷新页面

我正在开发简单的聊天应用程序,使用node.js服务器和HTMLCSSJavaScript的客户端,每个注册用户我生成一个gravatar取决于他的电子邮件,为匿名用户(没有电子邮件)我设置一个默认用户image.I将用户的详细信息保存在服务器的一个数组中,所以当用户login时,他们会看到聊天消息,并在他们旁边看到用户图像或他的头像。

问题是,实时更新消息显示,但图像不是除非我刷新页面。 我确定保存在服务器中的图像的URL是合法的,因为即使在刷新页面时也不能显示它们。

我得到follwing错误:

GET / client / undefined“错误(404):”未find“

编辑

server.js:

 function addMessage(message) { var m = (message); if (m.email === "" || m.email===undefined) { gravatar = "/client/images/user.png"; } else { var userimg= globalVar.usersList.findIndex(function (element) { return element.email === m.email; }); gravatar=globalVar.usersList[userimg].gravatar; } var newMessage = { name: m.name, email: m.email, gravatar: gravatar, message: m.message, timestamp: m.timestamp, } globalVar.messagesList.push(newMessage); } function getMessages(counter) { var messages = []; messages = globaVar.messagesList.filter(function (element) { return element.id > counter; }); return messages; } ...//after checking the url var newMessages = getMessages(counterFromClient); response.statusCode = 200; response.end(JSON.stringify(newMessages)); 

在客户端:

 getMessages(window.Babble.msgCounter, function (res) { var newMessages = JSON.parse(res), i; var chatList = document.getElementsByTagName('ol')[0]; var listItem, contDiv, imageDiv, userImage, msgDiv, ct, tm, btn, spn; for (i = 0; i < newMessages.length ; i++) { listItem = document.createElement('li'); contDiv = document.createElement('div'); imageDiv = document.createElement('div'); imageDiv.setAttribute("class", "user-image-div"); userImage = document.createElement('img'); userImage.setAttribute("alt", ""); userImage.setAttribute("class", "user-image"); userImage.setAttribute("src", newMessages[i].gravatar); userImage.setAttribute("style", "background: white; border: solid 1px #d7d7d7;"); imageDiv.appendChild(userImage); msgDiv = document.createElement('div'); msgDiv.setAttribute("class", "message-on-chatboard"); msgDiv.setAttribute("tabindex", "0"); ct = document.createElement('cite'); ct.setAttribute("class", "username"); ct.innerHTML = newMessages[i].name; tm = document.createElement('time'); tm.setAttribute("class", "time"); var date = new Date(newMessages[i].timestamp * 1000); var hours = date.getHours(); var minutes = "0" + date.getMinutes(); tm.innerHTML = hours + ":" + minutes; btn = document.createElement('button'); btn.setAttribute("class", "close"); btn.setAttribute("aria-label", "delete message"); btn.setAttribute("tabindex", 0); btn.setAttribute("id", "msg" + newMessages[i].id); spn = document.createElement('span'); spn.setAttribute("class", "message-content"); //console.log(typeof (newMessages[i].message)); spn.innerHTML = newMessages[i].message; msgDiv.appendChild(ct); msgDiv.appendChild(tm); contDiv.appendChild(imageDiv); contDiv.appendChild(msgDiv); //append list Item listItem.appendChild(contDiv); chatList.appendChild(listItem); } function getMessages(msgCounter, callback) { var httpRequest = new XMLHttpRequest(); httpRequest.onreadystatechange = function () { if (httpRequest.readyState === 4) { // request is done if (httpRequest.status === 200) { // successfully //console.log(httpRequest.responseText); callback(httpRequest.responseText); // we're calling our method } } }; httpRequest.open('GET', "http://localhost:8080/messages?counter=" + msgCounter); httpRequest.send(); } 

任何想法,为什么这样去,我该如何解决它? 提前致谢。

没有代码很难知道,但看到错误

 GET /client/undefined" Error (404): "Not found" 

看来你用来获取图像的variables没有被定义(未定义),所以先validation一下。