zoukankan      html  css  js  c++  java
  • 原生Ajax实现异步交互

    1. 实现Ajax主要依靠XMLHttpRequest对象,所以首先要创建XMLHttpRequest对象
      function getXhr(){
         var xhr = null;
         if(window.XMLHttpRequest){
      //高版本浏览器
              xhr = new XMLHttpRequest;
         }else{
      //IE低版本浏览器
             xhr = new ActiveXObject("Microsoft.XMLHttp");
         }
         return xhr;
      }
      var xhr = getXhr();
    2. 使用open方法与服务器建立连接
      open(method, url, async);
      xhr.open('post', 'data_montor.php', true);
      xhr.open('get', 'data_montor.php?user = name', true);
      //method 表示get/post //url 表示请求的地址 //async 表示同步还是异步,async = true 异步(默认) //若将async设置为false,官方认为XMLHttpRequest就是实现异步交互的会进行警告
      //如果是get方法请求参数应跟在url之后,而不是通过send发送
    3. 客户端向服务器发送请求
      send(请求参数)方法
      //请求参数的格式   key = value
      xhr.send('user = xinyue')
      //注意:如果使用get方法,send不能向服务器发送请求数据,但是也不能忽略
      //需要写成 send(NULL); 然后请求数据应放在open方法中的Url之后
      //(详见上一步)
    4. 客户端接受服务器端的响应:使用onreadyStatechange 时间监听服务器的通信状态
      xhr . onreadystatechange  = function(){
          if(xhr.readyState == 4){
              if(xhr. status == 200){
                  var data = xhr.responseText;
      //HTML格式使用responseText接收服务器端的相应数据,解析过程比较复杂(拆串),拆串拼串极易出错
                  console.log(data);
              }
         }
      }

      readyState 得服务器端当前通信状态 : 
              0 服务器端尚未初始化
              1 正在发送请求
              2  请求完成
              3  请求成功,客户端正在接收服务器端的数据
              4  响应完成
      status :  1XX 信息类
                    2XX 成功
                    3XX 重定向
                    4XX 客户端错误
                    5XX 服务器端错误
                                                     

  • 相关阅读:
    设计模式概述
    Android之.9.png图片的制作与使用
    2015-4-3~2015-5-28 第四届全国大学生软件设计大赛《解密陌生人》项目总结
    排序算法之快速排序
    AsyncTask那些事(更新中...)
    经典Android面试题
    import第三方库的头文件找不到的错误
    点击某个按钮在tableView某个位置动态插入一行cell
    NSUserDefaults:熟悉与陌生(转)
    更改UIsearchbar 的背景和cancel按钮(转)
  • 原文地址:https://www.cnblogs.com/Auyuer/p/8532327.html
Copyright © 2011-2022 走看看