• 用原生JS写PHP里的Ajax


     1 // 封装的 ajax网络请求函数
     2 // obj 是一个对象
     3 function AJAX(obj){
     4     // 1、创建 ajax 对象
     5     var ajaxObj = null;
     6     if (window.XMLHttpRequest) {
     7         ajaxObj = new XMLHttpRequest();
     8     }else{
     9         ajaxObj = new ActiveXObject("Microsoft.XMLHTTP");;
    10     }
    11 
    12     // 设置请求的类型
    13     obj.type = obj.type.toUpperCase() || "GET";
    14 
    15     // 如果是get请求,并且需要传递参数,则需要给 url后面拼接参数
    16     if (obj.type == "GET") {
    17         var arr = []; // 定义数组,用于把对象存储到数据里面
    18         for(var key in obj.data){
    19             arr.push(key+"="+obj.data[key]);
    20         }
    21         // 用&分隔数组,让其转化为类似:name=gxm&age=18的形式
    22         var str = arr.join("&");
    23         obj.url = obj.url +"?"+str;
    24             // 拨号
    25         ajaxObj.open(obj.type,obj.url,true);
    26         //2.1设置头文件
    27         ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
    28 
    29 
    30         // 发送"name=123&dad=131"
    31         ajaxObj.send();    
    32     }else{
    33         var arr = []; // 定义数组,用于把对象存储到数据里面
    34         for(var key in obj.data){
    35             arr.push(key+"="+obj.data[key]);
    36         }
    37         // 用&分隔数组,让其转化为类似:name=gxm&age=18的形式
    38         var str = arr.join("&");
    39         ajaxObj.open(obj.type,obj.url,true);
    40         ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    41         ajaxObj.send(str);
    42     }
    43 
    44 
    45     // 监听
    46     // 
    47     ajaxObj.onreadystatechange = function(){
    48         if (ajaxObj.readyState == 4) {
    49             if (ajaxObj.status >= 200 && ajaxObj.status < 300|| ajaxObj.status == 304) {
    50                     // 请求成功
    51                     console.log(ajaxObj.responseText)
    52                     // obj.success(ajaxObj.responseText);
    53             }else{
    54                 // 请求失败
    55                     obj.error(ajaxObj.status);
    56             }
    57 
    58 
    59         }
    60     }
    61 
    62 
    63 
    64 
    65 
    66 }
  • 相关阅读:
    金蝶报错事项
    ROS的脚本多拨
    zabbix4.0 相关的拓扑图及centos的虚拟配置
    ros开启快速转发模式
    linux 配置 l2tp-client
    linux 系统管理 实战技巧
    Flunetd 用于统一日志记录层的开源数据收集器
    在Centos7 更改Docker默认镜像和容器的位置
    Supervisor: 进程控制系统
    如何用正确的姿势查看 主机系统的CPU信息
  • 原文地址:https://www.cnblogs.com/PowellZhao/p/5685445.html
Copyright © 2020-2023  润新知