有誰知道如何使工作跨瀏覽器,而使用像jQuery等JavaScript框架Ajax請求的功能?JavaScript的AJAX請求,而不框架
6
A
回答
10
的XMLHttpRequest
對象實際上並不是那麼複雜使用。爲了廣泛兼容,您必須玩一些遊戲來創建對象,但在此之後,對於簡單操作來說相當簡單。
微軟對MSDN page for XMLHttpRequest
例子,包括一種在支持IE的早期版本跨瀏覽器的方式創建該對象的功能。下面是他們的榜樣:
function getXMLHttpRequest()
{
if (window.XMLHttpRequest) {
return new window.XMLHttpRequest;
}
else {
try {
return new ActiveXObject("MSXML2.XMLHTTP.3.0");
}
catch(ex) {
return null;
}
}
}
function handler()
{
if (oReq.readyState == 4 /* complete */) {
if (oReq.status == 200) {
alert(oReq.responseText);
}
}
}
var oReq = getXMLHttpRequest();
if (oReq != null) {
oReq.open("GET", "http://localhost/test.xml", true);
oReq.onreadystatechange = handler;
oReq.send();
}
else {
window.alert("AJAX (XMLHTTP) not supported.");
}
我並不是說上述例證了最佳實踐(微軟似乎也有自己的MSDN例子很大程度上是由非常,非常缺乏經驗的工程師寫的),但它給你一個起點。例如,在上述要求的響應狀態是200成功,其中當然HTTP規範清楚的是任何內容200 < = N < = 299範圍是「成功」。
+1
+1。真的,微軟需要處理MSDN示例中使用的代碼的質量,但這是一個很好的起點。 – Nathan 2015-05-26 07:54:44
1
我經常使用的現代瀏覽器中發送和接收只JSON這種方法(不老IE的)
function aj(method, url, data, cb){
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = readystatechange;
xhr.open(method, url);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(data && JSON.stringify(data));
function readystatechange(){
if(this.readyState === this.DONE) {
switch(this.status){
case 200:
if(this.getResponseHeader('Content-Type').split(';')[0] !== 'application/json'){
return cb("unexpected Content-Type: '" + this.getResponseHeader('Content-Type') + "'", null);
}
return cb(null, JSON.parse(this.response));
case 401:
location.href = '/authentication/login';
return;
default:
return cb("unexpected status: " + this.status + "", null);
}
}
}//readystatechange
}
相關問題
- 1. 如何框架AJAX請求
- 2. Ajax請求不會觸發。 [Yii框架]
- 3. Ajax請求的原型JS框架
- 4. 合併jQuery AJAX請求Zend框架
- 5. zend框架2 ajax請求錯誤
- 6. Javascript的ajax請求
- 7. 的Javascript AJAX請求
- 8. AJAX JSON請求在不同框架中的連線格式(HTTP)?
- 9. Ajax請求與Javascript
- 10. 玩框架,請求的不同約束
- 11. 在框中的Ajax請求
- 12. AJAX請求後的Javascript
- 13. 調試的JavaScript/AJAX請求
- 14. AJAX請求的Javascript解析
- 15. 不顯眼的Javascript - 和Ajax請求
- 16. javascript函數不是Ajax請求(XMLHttpRequest的)
- 17. Ajax請求,通過MVC框架(例如ColdBox)或不?
- 18. 請求甚至查實_RequestVerificationToken而不傳遞在AJAX請求
- 19. jQuery:爲什麼2 ajax GET請求而不是1請求?
- 20. AJAX請求Rails 3.1不渲染javascript
- 21. JSON不工作在JavaScript ajax請求
- 22. Play框架 - Zip JSON請求
- 23. Zend框架https請求
- 24. Yii框架異步請求
- 25. 具有豐富Ajax請求和中級用戶界面的JavaScript框架
- 26. Javascript AJAX請求問題
- 27. Javascript to jquery Ajax請求
- 28. CORS請求與Ajax/Javascript/Django
- 29. Iscroll Javascript Ajax請求拉尾?
- 30. 殺老JavaScript和Ajax請求
我覺得這一切都在網上。我不敢提w3school,但它在谷歌的第一個結果!搜索[AJAX教程(http://www.google.com.my/search?sourceid=chrome&ie=UTF-8&q=ajax+tutorials) – Sufendy 2011-05-06 06:52:24
我試圖讓embedable js代碼,因此它必須要小和便攜 – 2011-05-06 07:30:00
「另外,請嘗試谷歌。」嘿,我就是這麼來的。我想它的工作! – jeremyjjbrown 2013-04-07 03:51:44