This site will have limited functionality while we undergo maintenance to improve your experience. If an article doesn't solve your issue and you want to ask a question, we have our support community waiting to help you at @FirefoxSupport on Twitter and/r/firefox on Reddit.

ค้นหาฝ่ายสนับสนุน

Avoid support scams. We will never ask you to call or text a phone number or share personal information. Please report suspicious activity using the “Report Abuse” option.

เรียนรู้เพิ่มเติม

xmlHttpRequest AJAX not returning message from COMET server

  • 1 การตอบกลับ
  • 1 คนมีปัญหานี้
  • 1 ครั้งที่ดู
  • ตอบกลับล่าสุดโดย jscher2000 - Support Volunteer

more options

I have the following COMET client javascript code:


          function getResponse() {
               document.getElementById("_receivedMsgLabel").innerHTML += "getResponse() called.
"; if (receiveReq.readyState == 4 || receiveReq.readyState == 0) { receiveReq.open("GET", "http://L45723:1802?callback=testcallback", true); //must use this URL at work. receiveReq.onreadystatechange = handleReceiveMessage; alert("handleReceiveMessage assigned to onreadystatechange event."); receiveReq.overrideMimeType("text/x-json"); receiveReq.timeout = 100000; var currentDate = new Date(); var sendMessage = JSON.stringify({ SendTimestamp: currentDate, Message: "Message 1", Browser: navigator.appName, OriginUrl: document.URL }); var sendMessage = "SendTimestamp=" + currentDate + "&Message=Message1&Browser=" + navigator.userAgent; alert("JSON message created. About to send..."); receiveReq.send(sendMessage); alert("Message sent.");
               }
           }
           //function for handling the return message from Comet
           function handleReceiveMessage() {
               document.getElementById("_receivedMsgLabel").innerHTML += "Status=" + receiveReq.status;
               document.getElementById("_receivedMsgLabel").innerHTML += "responseText=" + receiveReq.responseText;
               
               if (receiveReq.readyState == 4 && receiveReq.status == 200) {
                   document.getElementById("_receivedMsgLabel").innerHTML += "Message received!
"; var status = receiveReq.status; var txt = receiveReq.responseText; document.getElementById("_receivedMsgLabel").innerHTML += txt + "
"; mTimer = setTimeout("getResponse();", 0); }
               getResponse();
           }

The GET request is sent and received by the COMET server, which sends the response back when I choose to. The handleReceiveMessage() function is called, but the message the server sent is not in the xmlHttpRequest.responseText property.

Why?

I have the following COMET client javascript code: function getResponse() { document.getElementById("_receivedMsgLabel").innerHTML += "getResponse() called.<br/>"; if (receiveReq.readyState == 4 || receiveReq.readyState == 0) { receiveReq.open("GET", "http://L45723:1802?callback=testcallback", true); //must use this URL at work. receiveReq.onreadystatechange = handleReceiveMessage; alert("handleReceiveMessage assigned to onreadystatechange event."); receiveReq.overrideMimeType("text/x-json"); receiveReq.timeout = 100000; var currentDate = new Date(); var sendMessage = JSON.stringify({ SendTimestamp: currentDate, Message: "Message 1", Browser: navigator.appName, OriginUrl: document.URL }); var sendMessage = "SendTimestamp=" + currentDate + "&Message=Message1&Browser=" + navigator.userAgent; alert("JSON message created. About to send..."); receiveReq.send(sendMessage); alert("Message sent."); } } //function for handling the return message from Comet function handleReceiveMessage() { document.getElementById("_receivedMsgLabel").innerHTML += "Status=" + receiveReq.status; document.getElementById("_receivedMsgLabel").innerHTML += "responseText=" + receiveReq.responseText; if (receiveReq.readyState == 4 && receiveReq.status == 200) { document.getElementById("_receivedMsgLabel").innerHTML += "Message received!<br/>"; var status = receiveReq.status; var txt = receiveReq.responseText; document.getElementById("_receivedMsgLabel").innerHTML += txt + "<br/>"; mTimer = setTimeout("getResponse();", 0); } getResponse(); } The GET request is sent and received by the COMET server, which sends the response back when I choose to. The handleReceiveMessage() function is called, but the message the server sent is not in the xmlHttpRequest.responseText property. Why?

การตอบกลับทั้งหมด (1)

more options

I suggest continuing the discussion in your thread on mozillaZine, since this site focuses more on end-user support.

xmlHttpRequest object - mozillaZine Forums