2009-11-07 160 views
1
var url="display.php?vote="+grade; 
xmlHttp.onreadystatechange=stateChanged 
xmlHttp.open("GET",url,true) 
xmlHttp.send(null) 
} 
} 

function stateChanged() 
{ 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") 
{ 
document.getElementById("txtHint").innerHTML=xmlHttp.responseText 
} 
} 

這段代碼未能發出請求。如何正確創建一個xmlHttp如何創建xmlhttp請求?

+0

完全重複:http://stackoverflow.com/questions/1620305/send-an-http-request –

+0

重新標記'js'爲'javascript',因爲它有更高的覆蓋率。 – BalusC

回答

0

這是一個「80%」的解決方案。

function GetXHR() 
{ 
    try 
    { 
    if (window.XmlHTTPRequest) 
     xmlHttp = new XmlHTTPRequest() 
    else 
     xmlHttp = new ActiveXObject("MSXML2.XMLHTTP.3.0") 
    } 
    catch(e) { } 
} 

var xmlHttp = GetXHR() 
if (xmlHttp) 
{ 
    // Proceed with xmlHttp usage. 
} 

編輯

注意我傾向於避免舊的ProgID「Microsoft.XMLHTTP」贊成我用,因爲稍後進程id有一個更可預測的行爲之一的,是非常輕微更多安全。但是,如果你想與真正老的Windows機器(我說的不支持的東西)更廣泛的兼容性,那麼你可以在你的具體情況下使用較舊的。

+0

什麼是100%解決方案? – Mask

+0

使用'jQuery.ajax()'。 – BalusC

+0

@Mask:實際上它更像99%,但我指的是「80/20」規則。這小部分代碼(20%的努力)解決了絕大多數情況下的問題(80%)。實際上它可以在所有常見的瀏覽器上運行。說一臺運行IE5的香草Windows 95機器會失敗。 – AnthonyWJones

0

相對於當前上下文,相對URL可能是錯誤的。很難說基於迄今爲止發佈的信息。您需要調查XHR狀態以瞭解更多詳情。

至少,w3schools.com有一個很好的基本Ajax教程。在瞭解Ajax/Javascript如何工作之後,我建議您繼續使用jQuery,它會從您的手中完成所有令人討厭的瀏覽器特定工作。

祝你好運。

2
<script type="text/javascript"> 
function ajaxFunction() 
{ 
var xmlhttp; 
if (window.XMLHttpRequest) 
    { 
    // code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else if (window.ActiveXObject) 
    { 
    // code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
else 
    { 
    alert("Your browser does not support XMLHTTP!"); 
    } 
} 
</script> 

這段代碼在link text可用,你可以像我這樣學習基本知識。希望這可以幫助。

0

var xmlHttp=new(window.ActiveXObject?ActiveXObject:XMLHttpRequest)('Microsoft.XMLHTTP');