All files ajax.js

0% Statements 0/22
0% Branches 0/12
0% Functions 0/5
0% Lines 0/22

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45                                                                                         
/**
 * @file ajax request file
 * @author JYkid
 * @version 0.0.1-beta
 */
 
const ajax =  (function() {
  return {
    canAjax: function() {
      return (window.XMLHttpRequest && window.JSON);
    },
    post: function(config, url, data, timeout) {
      var xhr = new XMLHttpRequest();
      xhr.open(config.type, url, true);
      xhr.setRequestHeader("content-type", "application/json;charset=utf-8");
      xhr.setRequestHeader("Accept", "application/json");
      xhr.withCredentials = true;
      xhr.timeout = timeout || 30000;
      xhr.onload = function () {
        var result = window.JSON.parse(xhr.responseText);
        if (result.status === 1) {
          changeStatus()
        }
      };
      xhr.onreadystatechange = function () {
        if (xhr.readyState === 4) {
          if (xhr.status === 200) {
            var result = window.JSON.parse(xhr.responseText);
            if (result.status === 1) {
              changeStatus()
            }
          } else {
            throw new Error("网络请求错误,请稍后再试~");
          }
        }
      };
      xhr.send(window.JSON.stringify(data));
    } 
  }
})();
 
module.exports = {
  ajax,
}