2012-11-09 6 views
0

데이터베이스를 성공적으로 업데이트하거나 오류가 발생하는 경우 사용자에게 경고 메시지를보고하려는 JavaScript 함수가 있습니다.XMLRequest ResponseText가 비어 있습니다.

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의 방법을 실행하지만, 관심이 절입니다 : 주요 X.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 개의 경고가 모두 비어있는 것처럼 만듭니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 나는 "Return Code :"메시지와 빈 메시지 (두 개의 다른 코드 섹션)를 보았지만 둘 다 공백 메시지 변수를 출력했습니다.

답변

0

readystate가 4가 아니면 오류가 아닙니다. Ajax는 고객에게 무슨 일이 일어나고 있는지 알려주는 여러 주를 가지고 있습니다. 코드에서 이러한 연결 상태가 모두 오류라고합니다.

 if(xmlHttp.readyState==4) 
     { 
      if(xmlHttp.status==200) 
      { 
       //alert("test2"); 
       //alert("recieved Message"); 
       var message = xmlHttp.responseText; 
       alert(message); 
      } <-- your else should most likely be up here 
     } 
     else <-- this is incorrect 
     { 
      alert("Error loading page"+ xmlHttp.status + 
     ":"+xmlHttp.statusText); 
     } 

내가 그에 당신과 동의합니다, MDN - Ajax Getting Started

+0

예에서 문서를 읽고,하지만 그건 정말 내가 해결하기 위해 찾고 있어요 문제가 아니다. xmlHttp.reponseText에 메시지를 전달할 수없는 이유는 무엇입니까? – user1754659

+0

모든 경고가 모아집니다. 서버에서 반환되는 내용을 살펴 보았습니까? Fiddler 또는 Firebug와 같은 도구를 사용하여 요청을 살펴보십시오. – epascarello

관련 문제