2012-02-20 82 views
1

如何從JavaScript中獲取服務器的響應?這是我的示例代碼:在javascript中獲取服務器的響應

function get_Image(values) { 
    if (window.XMLHttpRequest) { 
     var http_request = new XMLHttpRequest(); 
    } else if (window.ActiveXObject) { 
     var http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
    } else { 
     http_request.open("GET", "http://sample_address_for_server", true); 
     http_request.send(); 
    } 
    alert(http_request.status); 
    if (http_request.readyState == 4) { 
     if (http_request.status == 200) { 
      xmlDoc = http_request.responseText; 
      alert(xmlDoc); 
     } 
    } 
} 
+1

我強烈建議你使用像jQuery – 2012-02-20 14:55:47

+0

這樣的框架有什麼問題?你有什麼嘗試? – 2012-02-20 14:55:56

+0

請使用簡潔的縮進格式化您的JavaScript,這使得閱讀起來更容易。你有什麼值得到警報?你得到什麼錯誤信息?您的示例URI是絕對URI的事實表明您可能正在觸碰[同源策略](http://en.wikipedia.org/wiki/Same_origin_policy)。 – Quentin 2012-02-20 14:57:34

回答

0

嘗試使用此塊。與你的代碼的問題是,你錯過了報價在創建開放的引黃

function get_Image(values){ 

     var http_request = false; 
     if (window.XMLHttpRequest) { 
     http_request = new XMLHttpRequest() 
     } else { 
     if (window.ActiveXObject) { 
      try { 
      http_request = new ActiveXObject("MSXML2.XMLHTTP") 
      } catch() { 
      try { 
       http_request = new ActiveXObject("Microsoft.XMLHTTP") 
      } catch() {} 
      } 
     } else { 
      return false 
     } 
     } 
     http_request.onreadystatechange = function() { 

     alert(http_request.status);  
      if (http_request.readyState == 4) {  
     if (http_request.status == 200) {  
     xmlDoc = http_request.responseText;  
      alert(xmlDoc); 
    }} 
     }; 
    http_request.open("GET", "http://sample_address_for_server", true); 
     http_request.send(null); 
    } 
+0

老兄,這段代碼不工作... – chandramouli 2012-02-20 15:48:27

+0

正是你正在得到什麼錯誤...是連接正在建設 – 2012-02-20 17:22:36

-1

你必須附加到一個功能對象的onreadystatechange事件。你在做的方式,你試圖在你發送請求後馬上得到響應,你還沒有任何迴應。

function get_Image(values) { 
    if (window.XMLHttpRequest) { 
     var http_request = new XMLHttpRequest(); 
    } else if (window.ActiveXObject) { 
     var http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
    } else { 
     http_request.open("GET", "http://sample_address_for_server", true); 
     http_request.send(); 
    } 
    alert(http_request.status); 
    http_request.onreadystatechange = function(){ 
     if (http_request.readyState == 4) { 
      if (http_request.status == 200) { 
       xmlDoc = http_request.responseText; 
       alert(xmlDoc); 
      } 
     } 
    } 
} 
+0

現場的遊戲不是樂趣。 – Quentin 2012-02-20 15:10:29

+0

老兄,你真是驚人的發現。在與Kunal同一分鐘回答我一定會更加驚人。謝謝... – 2012-02-20 15:11:37

+0

@Quentin我希望你能得到我的諷刺,顯然不是 – 2012-02-20 16:44:49