当前位置:   article > 正文

原生Ajax写法和ES6中Promise结合Ajax写法_ajax es6写法

ajax es6写法

原生AJAX

  1. var Ajax={
  2. get: function(url, fn) {
  3. // XMLHttpRequest对象用于在后台与服务器交换数据
  4. var xhr = new XMLHttpRequest();
  5. xhr.open('GET', url, true);
  6. xhr.onreadystatechange = function() {
  7. // readyState == 4说明请求已完成
  8. if (xhr.readyState == 4 && xhr.status == 200 || xhr.status == 304) {
  9. // 从服务器获得数据
  10. fn.call(this, xhr.responseText);
  11. }
  12. };
  13. xhr.send();
  14. },
  15. // data应为'a=a1&b=b1'这种字符串格式,在jq里如果data为对象会自动将对象转成这种字符串格式
  16. post: function (url, data, fn) {
  17. var xhr = new XMLHttpRequest();
  18. xhr.open("POST", url, true);
  19. // 添加http头,发送信息至服务器时内容编码类型
  20. xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  21. xhr.onreadystatechange = function() {
  22. if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) {
  23. fn.call(this, xhr.responseText);
  24. }
  25. };
  26. xhr.send(data);
  27. }
  28. }

ES6中Promise结合Ajax写法

  1. const ajaxPromise = param => {
  2. return new Promise((resovle, reject) => {
  3. var xhr = new XMLHttpRequest();
  4. xhr.open(param.type || "get", param.url, true);
  5. xhr.send(param.data || null);
  6. xhr.onreadystatechange = () => {
  7. var DONE = 4; // readyState 4 代表已向服务器发送请求
  8. var OK = 200; // status 200 代表服务器返回成功
  9. if(xhr.readyState === DONE){
  10. if(xhr.status === OK){
  11. resovle(JSON.parse(xhr.responseText));
  12. } else{
  13. reject(JSON.parse(xhr.responseText));
  14. }
  15. }
  16. }
  17. })
  18. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/148325
推荐阅读
相关标签
  

闽ICP备14008679号