2017-05-30 200 views
-1

Ajax請求是成功的,但響應爲空,但我可以看到結果迴應螢火蟲爲:Ajax請求的響應空

<?xml version="1.0" encoding="UTF-8" ?><response><likes>13</likes></response> 

並在控制檯中存在誤差爲:

類型錯誤:響應爲空

var XMLHttpObject = createXMLHttpRequest(); 
$Id = null; 

function process(id) { //makeAsynchornusRequest 
    if(XMLHttpObject.readyState == 0 || XMLHttpObject.readyState == 4) { 
     XMLHttpObject.onreadystatechange = responseHandler; 
     $Id = id; 
     XMLHttpObject.open("GET","like/" + id); 
     XMLHttpObject.send(null); 
    } 
} 

function responseHandler() { 
    if(XMLHttpObject.readyState == 4) { 
     if(XMLHttpObject.status == 200) { // 200 implies `ok` like 400 implies `page not found` 
      response = XMLHttpObject.responseXML; 
      xmlDocumentElement = response.documentElement; 
      output = document.getElementById("num_likes" + $Id); 
      output.innerHTML = xmlDocumentElement ; 
     } 
    } 
} 
+0

請分享你的代碼,你怎麼叫AJAX方法等 –

+0

你可以發佈ajax代碼 – Exprator

回答

0

您已經標記的JQuery - 使用JQuery您的Ajax調用嘗試:

$.ajax({ 
    url: '/Likes', 
    data: { id: id }, 
    success: function (response) { 
     if (response) { 
      console.log(response); 
     } 
    }, 
    error: function (xhr, s, sa) { 
     console.log(s, sa); 
    }, 
    complete: function() { 
      console.log('complete event'); 
    } 
}); 
0

你可以試試這個切換到onLoad事件處理程序。

Mozilla的文檔:

var xhr = new XMLHttpRequest(); 
xhr.open('GET', '/server', true); 

// If specified, responseType must be empty string or "document" 
xhr.responseType = 'document'; 

// overrideMimeType() can be used to force the response to be parsed as XML 
xhr.overrideMimeType('text/xml'); 

xhr.onload = function() { 
    if (xhr.readyState === xhr.DONE) { 
    if (xhr.status === 200) { 
     console.log(xhr.response); 
     console.log(xhr.responseXML); 
    } 
    } 
}; 

xhr.send(null); 

與您的代碼(注意,您可能需要調整responseHandler()身體微微:

XMLHttpObject.open("GET","like/" + id); 
xhr.onload = responseHandler; 
XMLHttpObject.send(null);