1,get方式的AJAX

  1. function sendAjaxReq()
  2. {
  3. //1,创建ajax引擎 XMLHttpRequest对象
  4. var req = new XMLHttpRequest() || new ActiveXObject("Msxm12.XMLHTTP");
  5. //2,打开一个请求,此时未发送请求,定义好发送请求的方式以及是否需要携带数据 是否同步异步
  6. req.open("get", "testAjax?phone=iphone&apple=pen");
  7. //3,准备好处理服务器返回的数据
  8. req.onreadystatechange = function()
  9. {
  10. if(req.readyState == 4)
  11. {
  12. //返回json数据的解析格式
  13. var str = req.responseText;
  14. eval("var obj=" + str);
  15. alert(obj.name);
  16. //返回xml的解析格式
  17. var data = req.reponseXML.getElementsByTagName("bigName")[0].first(child.data);
  18. }
  19. }
  20. //4,发送请求,如果是在火狐下,使用get方式发送ajax请求,send的时候括号写上null
  21. req.send(null);
  22. }

2,post方式AJAX

  1. //使用post传参,需要携带一个请求头模拟表单提交
  2. function sendAjax()
  3. {
  4. var request = new XMLHttpRequest() || new ActiveXObject("Msxm12.XMLHTTP");
  5. request.open("post", "testAjax?phone=1", true)
  6. request.onreadystatechange = function()
  7. {
  8. if(request.readyState == 4)
  9. {
  10. if(request.status == 200)
  11. {
  12. var str = request.responseText;
  13. alert(str);
  14. }
  15. else if(request.status == 404)
  16. {
  17. alert("找不到资源");
  18. }
  19. }
  20. }
  21. request.setRequestHeader("content-type", "application/x-www-form-urlencoded")
  22. request.send("phone=");
  23. }

3,封装了get和post的AJAX

  1. function sendAjaxReq(method,url,param,fun200,fun404,fun500)
  2. {
  3. var req;
  4. if(window.XMLHttpRequest)
  5. {
  6. req = new XMLHttpRequest();
  7. }
  8. else if(window.ActiveXObject)
  9. {
  10. req = new ActiveXObject("Msxml2.XMLHTTP");
  11. }
  12. req.open(method,url);
  13. req.onreadystatechange = function()
  14. {
  15. if(req.readyState == 4)
  16. {
  17. if(req.status == 200)
  18. {
  19. if(fun200)
  20. {
  21. fun200(req.responseText);
  22. }
  23. }
  24. else if(req.status == 404)
  25. {
  26. if(fun404)
  27. {
  28. fun404();
  29. }
  30. }
  31. else if(req.status == 500)
  32. {
  33. if(fun500)
  34. {
  35. fun500();
  36. }
  37. }
  38. }
  39. }
  40. if(method.toUpperCase() == "GET")
  41. {
  42. req.send(null);
  43. }
  44. else if(method.toUpperCase() == "POST")
  45. {
  46. req.setRequestHeader("context-type", "application/x-www-form-urlencoded");
  47. req.send(param);
  48. }
  49. }
  50.  
  51. function testAjax()
  52. {
  53. sendAjaxReq("get","ajaxServlet?uname=1&password=2",null,function(data)
  54. {
  55. eval("var obj="+data);
  56. alert(obj.data);
  57. });
  58. }

原生JS操作AJAX的更多相关文章

  1. 原生js实现Ajax

    一般来说,大家可能都会习惯用JQuery提供的Ajax方法,但是用原生的js怎么去实现Ajax方法呢? JQuery提供的Ajax方法: $.ajax({ url: , type: '', dataT ...

  2. 框架操作DOM和原生js操作DOM比较

    问题引出 对于Angular和React操作DOM的速度,和原生js操作DOM的速度进行了一个比较: 一个同学做的demo 代码如下: <!DOCTYPE html> <html n ...

  3. 原生JS实现Ajax及Ajax的跨域请求

      前  言          如今,从事前端方面的程序猿们,如果,不懂一些前后台的数据交互方面的知识的话,估计都不太好意思说自己是程序猿.当然,如今有着许多的框架,都有相对应的前后台数据交互的方法. ...

  4. 原生JS的Ajax技术

    1.同步和异步 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待  卡死状态 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随意做其他事情,不会被卡 ...

  5. 用原生js实现ajax、jsonp

    转载: http://www.cnblogs.com/yangheng/p/6065910.html 一.原生js实现ajax $.ajax({ url: '', type: 'post', data ...

  6. 原生JS实现ajax 发送post请求

    1. [代码]原生JS实现ajax 发送post请求 <script> var oStr = ''; var postData = {}; var oAjax = null; //post ...

  7. 原生js实现ajax封装

    一.什么是ajax? 定义:Ajax(Asynchronous Java and XML的缩写)是一种异步请求数据的web开发技术,在不需要重新刷新页面的情况下,Ajax 通过异步请求加载后台数据,并 ...

  8. [javascript]原生js实现Ajax

    一.首先看JQuery提供的Ajax方法: $.ajax({ url: , type: '', dataType: '', data: { }, success: function(){ }, err ...

  9. 使用原生js写ajax

    // 使用原生js 封装ajax // 兼容xhr对象 function createXHR(){ if(typeof XMLHttpRequest != "undefined") ...

随机推荐

  1. 基础回顾—list遍历4种

    ()for each for(bject o :list) { } [java] view plain copy ()Iterator Iterator iter = list.iterator(); ...

  2. hdu1540 Tunnel Warfare【线段树】

    During the War of Resistance Against Japan, tunnel warfare was carried out extensively in the vast a ...

  3. MapReduce计算之——hadoop中的Hello World

    1.  启动集群 2.  创建input路径(有关hadoop 的命令用 "hadoop fs"),input路径并不能在系统中查找到,可以使用 “hadoop fs -ls /” ...

  4. 如何将Win10 的环境变量页面设置用在win7上面?

    如何将Win10 的环境变量设置用在win7上面? Win7一般是如下设置: Win10 是如下设置: 解决办法: 注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentContr ...

  5. hdu-4283 You Are the One 区间dp,

    题意:n个人排队上台,每个人有一屌丝值D,他的不满意值=D*(k-1)(k为他前面的总人数). 求整个队列不满意值之和的最小值.你只有一个操作,就是把队首的人塞进小黑屋,也就是压入栈中,后面的人就被提 ...

  6. date 命令之日期和秒数转换

    时间转为秒数 date -d "2012-11-12 13:00:00" +"%s" 描述转为日期 date -d@1352692800 +"%Y-% ...

  7. initrd和initramfs的区别

      Linux内核在初始化之后会执行init进程,而init进程会挂载我们的根文件系统,但由于init程序也是在根文件系统上的,所以这就有了悖论.Linux采用两步走的方法来解决这个问题.Linux2 ...

  8. 2018/03/09 每日一学PHP 之 require_once require include include_once 包含文件的区别

    require_once require include include_once 方法的区别 对于包含文件来说,如果只是使用框架来说的话,应该会很少碰到,因为框架底层对于文件的引用等做了很好的封装, ...

  9. (3.14)mysql基础深入——mysql 日志分析工具之pt-querty-digest【待完善】

    (3.14)mysql基础深入——mysql 日志分析工具之pt-querty-digest 关键字:Mysql日志分析工具.mysqlsla 常用工具 [1]mysqldumpslow:官方提供的慢 ...

  10. shell_exec() has been disabled for security reasons错误怎么解决?

    ytkah在用composer安装插件时出现了shell_exec() has been disabled for security reasons错误提示,这个是php配置的问题,shell_exe ...