2011-06-06 79 views
0

我有以下的JavaScript代碼:JavaScript錯誤在Firefox 3.6中

var xmlHttpReq = getXmlHttpObject(); 
    xmlHttpReq.onreadystatechange=function(){ 
     if (xmlHttpReq.readyState == 4) { 
      var res =xmlHttpReq.response;  
      var result = res.split(',');   
      if (document.getElementById("shoppingCardAjax")!=null){  
      document.getElementById("shoppingCardAjax").innerHTML = overAllPayment + result[1]; 
      } 
    } 

在Chrome此代碼的工作完美無瑕,但在Mozilla 3.6我得到錯誤:

res is undefined 
var result = res.split(','); 

爲什麼?有什麼不同?

+1

該軟件名爲「Mozilla」的最新版本是1.7.13。你的意思是Firefox? – Quentin 2011-06-06 09:27:49

回答

2

xmlHttpReq.response應該xmlHttpReq.responseText

PS:你爲什麼不使用一個不錯的lib像jQuery代替手工做的所有XHR的東西?

+0

不錯,但你能解釋爲什麼嗎? – 2011-06-06 09:35:00

+0

只是因爲正確的屬性是'responseText'(我不知道爲什麼Chrome也有'.response') – ThiefMaster 2011-06-06 09:35:57

+0

有趣。 Chrome有一個名爲'response'的'responseText'的別名:[這是一個測試(大概只適用於Chrome)](http://jsbin.com/eseli3/2)讓我感到驚訝!既不是[MSDN](http://msdn.microsoft.com/en-us/library/ms535874(v = vs.85).aspx)也不是[W3C](http://www.w3.org/TR/) XMLHttpRequest /#xmlhttprequest)定義。只需檢查Firefox 3.6,Opera 11和IE9,他們都沒有。 – 2011-06-06 09:36:21