ajax

ajax({
                            url: "./TestXHR.aspx",       //请求地址
                            type: "POST",                            //请求方式
                            data: { name: "super", age: 20 },    //请求参数
                            dataType: "json",
                            success: function (response, xml) {
                              // 此处放成功后执行的代码
                            },
                            error: function (status) {
                              // 此处放失败后执行的代码
                            }
                          });


function ajax(options) {
                            options = options || {};
                            options.type = (options.type || "GET").toUpperCase();
                            options.dataType = options.dataType || "json";
                            var params = formatParams(options.data);
                            var xhr;
                         
                            //创建 - 第一步
                            if (window.XMLHttpRequest) {
                              xhr = new XMLHttpRequest();
                            } else if(window.ActiveObject) {         //IE6及以下
                              xhr = new ActiveXObject('Microsoft.XMLHTTP');
                            }
                         
                            //连接 和 发送 - 第二步
                            if (options.type == "GET") {
                              xhr.open("GET", options.url + "?" + params, true);
                              xhr.send(null);
                            } else if (options.type == "POST") {
                              xhr.open("POST", options.url, true);
                              //设置表单提交时的内容类型
                              xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                              xhr.send(params);
                            }

                             //接收 - 第三步
                            xhr.onreadystatechange = function () {
                              if (xhr.readyState == 4) {
                                var status = xhr.status;
                                if (status >= 200 && status < 300 || status == 304) {
                                  options.success && options.success(xhr.responseText, xhr.responseXML);
                                } else {
                                  options.error && options.error(status);
                                }
                              }
                            }
                          }

                          //格式化参数
                          function formatParams(data) {
                            var arr = [];
                            for (var name in data) {
                              arr.push(encodeURIComponent(name) + "=" + encodeURIComponent(data[name]));
                            }
                            arr.push(("v=" + Math.random()).replace("."));
                            return arr.join("&");
                          }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值