关于手写原生ajax重要不重要,各位道友自己揣摩吧, 本着学习才能进步,分享大家共同受益,自己也在自己博客里写一下

    

function createXMLHTTPRequest() {
//1.创建XMLHttpRequest对象
//这是XMLHttpReuquest对象无部使用中最复杂的一步
//需要针对IE和其他类型的浏览器建立这个对象的不同方式写不同的代码
var xmlHttpRequest;
if (window.XMLHttpRequest) {
//针对FireFox,Mozillar,Opera,Safari,IE7,IE8
xmlHttpRequest = new XMLHttpRequest();
//针对某些特定版本的mozillar浏览器的BUG进行修正
if (xmlHttpRequest.overrideMimeType) {
xmlHttpRequest.overrideMimeType("text/xml");
}
} else if (window.ActiveXObject) {
//针对IE6,IE5.5,IE5
//两个可以用于创建XMLHTTPRequest对象的控件名称,保存在一个js的数组中
//排在前面的版本较新
var activexName = [ "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ];
for ( var i = 0; i < activexName.length; i++) {
try {
//取出一个控件名进行创建,如果创建成功就终止循环
//如果创建失败,回抛出异常,然后可以继续循环,继续尝试创建
xmlHttpRequest = new ActiveXObject(activexName[i]);
if(xmlHttpRequest){
break;
}
} catch (e) {
}
}
}
return xmlHttpRequest;
}

然后就是常见的GET 和POST请求

Get请求代码

function get(){
var req = createXMLHTTPRequest();
if(req){
req.open("GET", "http://test.com/?keywords=手机", true);
req.onreadystatechange = function(){
if(req.readyState == 4){
if(req.status == 200){
alert("success");
}else{
alert("error");
}
}
}
req.send(null);
}
}

POST代码

   function post(){
var req = createXMLHTTPRequest();
if(req){
req.open("POST", "http://test.com/", true);
req.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=gbk;");
req.send("keywords=手机");
req.onreadystatechange = function(){
if(req.readyState == 4){
if(req.status == 200){
alert("success");
}else{
alert("error");
}
}
}
}
}

希望能帮到各位,祝大家都能顺利。

最新文章

  1. 关于EF6的记录Sql语句 与 EntityFramework.Extend 的诟病
  2. hdfs client access the hdfs cluster not in one domain
  3. 再谈Newtonsoft.Json高级用法
  4. js正则表达式大全(4)
  5. Redis缓存之Set使用
  6. Android 6.0 源代码编译实践
  7. POJ 1650 Integer Approximation
  8. 异步fifo的设计
  9. [saiku] 免登陆进入管理后台
  10. SQL Server中易混淆的数据类型
  11. RNN-theano代码解析
  12. 【Xamarin挖墙脚系列:应用的性能调优】
  13. 解决ssh无密码登录不成功的问题
  14. Qt国际化相关类
  15. C++ string和c类型字符数组的比较
  16. GitLab 客户端添加SSH KEY
  17. 中美HTML5市场发展的简单对比
  18. AutoMapper总结
  19. Tomcat正常启动,访问所有页面均报404异常,404异常总结
  20. 浅谈hibernate+入门实例

热门文章

  1. VS2012调试时很慢的解决方案
  2. VS自定义项目模板:[2]创建VSIX项目模板扩展
  3. Delphi 中的自动释放策略-转
  4. cant create oci environment
  5. 关于tableviewcell的一些必备常识
  6. 关于html5新增的功能(百度)
  7. Ubuntu 安装 JDK 7
  8. 更改机器名后,打开TFS提示工作区错误的处理
  9. Angularjs ng-if和ng-show的区别
  10. Excel表格数据导入到SQLServer数据库