[英]Ajax response returning null
我是 Ajax 的新手,剛剛開始學習,我已經設法將數據傳遞給我的 servlet,但是一旦我寫回它,然后嘗試從我的網頁中讀取它,它就會返回 undefined 這是我的代碼:
爪哇:
@WebServlet("/PeriodHandler")
public class PeriodHandler extends HttpServlet {
private static Connection conn = UserHandler.conn;
private String periodList;
public String date;
public PeriodHandler(){
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
response.setContentType("text/xml");
System.out.println(request.getParameter("date"));
response.getWriter().println("<responseFromServer>The date is" + request.getParameter("date")+"</responseFromServer>");
}
}
Javascript:
function sendData() {
xmlhttp.open("POST", "PeriodHandler?date=" +document.getElementById('dates').value, true);
xmlhttp.onreadystatechange=recievedMessageFromServer;
xmlhttp.send();
}
function recievedMessageFromServer(){
if(xmlhttp.readyState===4 && xmlhttp.status===200){
var date = xmlhttp.responseXML.documentElement.getElementsByTagName("responseFromServer")[0];
alert(date);
}
}
我希望有人能指出我正確的方向,謝謝
responseFromServer
是根元素。 嘗試將其包裝在另一個內部並訪問responseFromServer
//Java
response.getWriter().println("<root><responseFromServer>The date is" + request.getParameter("date")+"</responseFromServer></root>");
//Ajax - No change
var date = xmlhttp.responseXML.documentElement.getElementsByTagName("responseFromServer")[0];
這里的想法是當您調用xmlhttp.responseXML.documentElement
它會從根開始。 因此,它檢查responseFromServer
為的子元素標簽responseFromServer
。 如果你不想要一個根,你應該刪除documentElement
部分,如
//Java - No change
response.getWriter().println("<responseFromServer>The date is" + request.getParameter("date")+"</responseFromServer>");
//Ajax
var date = xmlhttp.responseXML.getElementsByTagName("responseFromServer")[0];
沒關系已經發現了問題,感謝 Syam S 為我指出正確的方向,以及任何與我有同樣問題的人,這里是解決方案。
var date = xmlhttp.responseXML.getElementsByTagName("responseFromServer")[0].childNodes[0].nodeValue;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.