有谁知道如何使工作跨浏览器,而使用像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请求的原型JS框架
- 2. Javascript的ajax请求
- 3. Ajax请求与Javascript
- 4. 玩框架,请求的不同约束
- 5. 在框中的Ajax请求
- 6. AJAX请求的Javascript解析
- 7. AJAX请求后的Javascript
- 8. Ajax请求,通过MVC框架(例如ColdBox)或不?
- 9. 请求甚至查实_RequestVerificationToken而不传递在AJAX请求
- 10. jQuery:为什么2 ajax GET请求而不是1请求?
- 11. 具有丰富Ajax请求和中级用户界面的JavaScript框架
- 12. Zend框架https请求
- 13. Yii框架异步请求
- 14. 杀老JavaScript和Ajax请求
- 15. Laravel 4 javascript ajax请求
- 16. JavaScript同步Ajax请求Idiosyncrasies
- 17. AJAX请求不做
- 18. 带参数的Ajax GET请求播放框架2.5.X
- 19. Ajax请求中的jQuery Ajax请求
- 20. 来自ajax请求的链接不通过ajax请求
- 21. 处理Ajax请求和响应Zend框架
- 22. MVC多个AJAX请求与实体框架导致错误
- 23. 将数据作为数组播放框架和jQuery Ajax请求
- 24. 的Javascript等待的extern Ajax请求
- 25. 错误的请求在Spring框架
- 26. POST请求Django的REST框架
- 27. Django的REST框架KeyError异常 '请求'
- 28. Ajax请求在jQuery Mobile的对话框
- 29. jQuery基于复选框的Ajax请求
- 30. 使用建议框的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