封装一个jQuery ajax

2018-06-18  本文已影响0人  ZombieBrandg

参考资料

function ajax(options) {
  var url = options.url;
  var method = options.type || "GET";
  var datatype = options.dataType || "jSON";
  var onsuccess = options.onsuccess || function() {};
  var onerror = options.onerror || function() {};
  var data = options.data || {};
  var xhr = new XMLHttpRequest();
  var dataStr = [];
  for (var key in data) {
    dataStr.push(key + "=" + data[key]);
  }
  dataStr.join("&");
  if (method === "GET") {
    url = url + "?" + dataStr;
  }
  xhr.open(method, url, true);
  xhr.onload = function(e) {
    if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 300) {
      if (datatype === "json") {
        onsuccess(JSON.parse(xhr.responseText));
      }
    } else {
      onerror();
    }
  };
  xhr.onerror = onerror;
  if (method === "POST") {
    xhr.send(dataStr);
  } else {
    xhr.send();
  }
}
ajax({
  url: "http://api.jirengu.com/weather.php",
  data: {
    city: "北京"
  },
  onsuccess: function(ret) {
    console.log(ret);
  },
  onerror: function() {
    console.log("服务器异常");
  }
});

上一篇下一篇

猜你喜欢

热点阅读