Xhr.weapp.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
  3. var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
  4. var _stringify = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/json/stringify"));
  5. var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
  6. var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
  7. module.exports = /*#__PURE__*/function () {
  8. function XhrWeapp() {
  9. (0, _classCallCheck2.default)(this, XhrWeapp);
  10. this.UNSENT = 0;
  11. this.OPENED = 1;
  12. this.HEADERS_RECEIVED = 2;
  13. this.LOADING = 3;
  14. this.DONE = 4;
  15. this.header = {};
  16. this.readyState = this.DONE;
  17. this.status = 0;
  18. this.response = '';
  19. this.responseType = '';
  20. this.responseText = '';
  21. this.responseHeader = {};
  22. this.method = '';
  23. this.url = '';
  24. this.onabort = function () {};
  25. this.onprogress = function () {};
  26. this.onerror = function () {};
  27. this.onreadystatechange = function () {};
  28. this.requestTask = null;
  29. }
  30. (0, _createClass2.default)(XhrWeapp, [{
  31. key: "getAllResponseHeaders",
  32. value: function () {
  33. var header = '';
  34. for (var key in this.responseHeader) {
  35. var _context;
  36. header += (0, _concat.default)(_context = "".concat(key, ":")).call(_context, this.getResponseHeader(key), "\r\n");
  37. }
  38. return header;
  39. }
  40. }, {
  41. key: "getResponseHeader",
  42. value: function (key) {
  43. return this.responseHeader[key];
  44. }
  45. }, {
  46. key: "setRequestHeader",
  47. value: function (key, value) {
  48. this.header[key] = value;
  49. }
  50. }, {
  51. key: "open",
  52. value: function (method, url) {
  53. this.method = method;
  54. this.url = url;
  55. }
  56. }, {
  57. key: "abort",
  58. value: function () {
  59. if (!this.requestTask) {
  60. return;
  61. }
  62. this.requestTask.abort();
  63. this.status = 0;
  64. this.response = undefined;
  65. this.onabort();
  66. this.onreadystatechange();
  67. }
  68. }, {
  69. key: "send",
  70. value: function (data) {
  71. var _this = this;
  72. this.requestTask = wx.request({
  73. url: this.url,
  74. method: this.method,
  75. data: data,
  76. header: this.header,
  77. responseType: this.responseType,
  78. success: function (res) {
  79. _this.status = res.statusCode;
  80. _this.response = res.data;
  81. _this.responseHeader = res.header;
  82. _this.responseText = (0, _stringify.default)(res.data);
  83. _this.requestTask = null;
  84. _this.onreadystatechange();
  85. },
  86. fail: function (err) {
  87. _this.requestTask = null;
  88. _this.onerror(err);
  89. }
  90. });
  91. this.requestTask.onProgressUpdate(function (res) {
  92. var event = {
  93. lengthComputable: res.totalBytesExpectedToWrite !== 0,
  94. loaded: res.totalBytesWritten,
  95. total: res.totalBytesExpectedToWrite
  96. };
  97. _this.onprogress(event);
  98. });
  99. }
  100. }]);
  101. return XhrWeapp;
  102. }();