0
我有一個JavaScript函數,如果它成功更新數據庫,或者它有錯誤,我想向用戶報告警報消息。XMLRequest ResponseText爲空
在主X.JSP文件我有:
function startRequest(pChange)
{
//alert("startRequest");
createXmlHttpRequest();
//alert("sending message");
//var u1=document.f1.user.value;
//alert("Running startRequest for: " + pChange.id);
//xmlHttp.open("GET","updateEntry.jsp&pID=pChange.id&pStatus=pChange.status&pAddress=pChange.address&pDate=pChange.date&pNotes=pChange.note&pAssigned=pChange.assigned" ,true)
xmlHttp.open("GET","updateEntry.jsp?pID=" + pChange.id + "&pAddress=" +pChange.address + "&pStatus=" + pChange.status +"&pNote=" + pChange.notes +"&pAssigned=" +pChange.assigned ,true)
//alert(xmlHttp.responseText);
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.send(null);
}
function handleStateChange()
{
//alert("handleStateChange");
var message = xmlHttp.responseText;
alert("Return Code:" + message);
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
//alert("test2");
//alert("recieved Message");
var message = xmlHttp.responseText;
alert(message);
}
}
else
{
alert("Error loading page"+ xmlHttp.status +
":"+xmlHttp.statusText);
}
}
我然後運行updateEntry.jsp的方法,做了一些事情,但令人感興趣的是這一部分:
if(nId.equals("NMI")||nId.equals("MI")||nId.equals("NI")||nId.equals("SA")||nId.equals("S"))
{
org.hibernate.Query query2 = session2.createQuery("update Leads set Status = :nstatus where Id = :nid");
query2.setParameter("nid", nId);
query2.setParameter("nstatus", nstatus);
query2.executeUpdate();
out.println("Update successfully with: " + nstatus);
// Actual contact insertion will happen at this step
session2.flush();
session2.close();
}
else
{
out.println("Status must be: NMI, MI, NI, SA or S");
}
我的理解是,如果函數成功完成,這應該只會創建一個警報。相反,它創建了9個警報,全部都是空白的。我究竟做錯了什麼?我看到「返回代碼:」消息和一個空白消息(兩個不同的代碼段),但都輸出空白消息變量。
是閱讀文檔,我跟你同意這一觀點,但是這不是真的我期待解決的問題。爲什麼我不能將消息傳遞到xmlHttp.reponseText中? – user1754659
它擴大了所有的警報。你看過服務器返回的內容嗎?使用像Fiddler或Firebug這樣的工具來查看請求。 – epascarello