2011-01-23 45 views
2

我正在構建一個自定義小部件,我不應該使用任何框架,如jQuery,我需要一個輕量級的跨瀏覽器對象,支持POST & GET與回調,我見過一些在線解決方案,但他們包括很多無用的東西。輕量級AJAX對象建議?

感謝

+0

你在考慮什麼沒用,它可能有助於解釋爲什麼這些可能是有用的。 –

回答

4

只需使用XMLHttpRequest的對象自己。

我傾向於喜歡看mozilla網站看例子,他們對這個問題有一個很好的解釋。

https://developer.mozilla.org/En/XMLHttpRequest/Using_XMLHttpRequest

這是不難做到的,它支持任何HTTP請求,併爲您想讓它,這取決於你想如何容易使其使用起來簡單或複雜。

儘管jQuery有一個不錯的API,所以複製它們的樣式可能會很有用。

UPDATE:

你應該參考上面的鏈接,但看到POST如何可以做到的,主要是你把參數代入send功能,你可以看看這個。不要只複製這段代碼,我只是在這裏舉一個簡單的例子。

var xhr = new XMLHttpRequest(); 
xhr.open("POST", "http://foo.com/submitform.php"); 
xhr.send(formData); 

爲了得到你只是把它們在URL中,就像在你的地址欄中,並在send空。

1

如果你不能使用JQuery,你可以從頭寫一個不使用任何庫: -

var xmlhttp; 

if (window.XMLHttpRequest) { 
    xmlhttp=new XMLHttpRequest(); 
} 
else { 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 

xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
    document.getElementById("yourdiv").innerHTML=xmlhttp.responseText; 
    } 
} 

// change "GET" to "POST" if you want to POST 
xmlhttp.open("GET","/yourlink",true); 
xmlhttp.send(); 
+0

您可能也想要顯示POST的代碼,但我想他可能想了解一些部分,以瞭解readyState的哪些類型的值可以是,例如。 –

+0

@James Black:除了readyState(4 == Complete)之外,其他人不保證觸發。 – mhitza

+0

@mhitza - 我的觀點是,只發布沒有上下文的代碼將幫助他理解真正發生了什麼,或者如何使其按照他的意圖工作。 –