Този сайт ще има ограничена функционалност, докато се извършва тече неговата поддръжка. Ако дадена статия не може реши проблема ви и искате да зададете въпрос, нашата общност е готова да ви помогне на @firefox в Twitter и /r/firefox в Reddit.

Търсене в помощните статии

Избягвайте измамите при поддръжката. Никога няма да ви помолим да се обадите или изпратите SMS на телефонен номер или да споделите лична информация. Моля, докладвайте подозрителна активност на "Докладване за злоупотреба".

Научете повече

xmlHttpRequest AJAX not returning message from COMET server

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