当前位置:   article > 正文

使用class类封装ajax_class 封装ajax

class 封装ajax

文章目录


前言

        使用class类对ajax进行简单的封装,以便于使用


一、使用class封装的过程

如何进行封装:

  1. /*
  2. url
  3. data
  4. dataType
  5. */
  6. class axios {
  7. static get (param = {}) {
  8. // console.log(param);
  9. param.method = 'get'
  10. return axios.http(param)
  11. }
  12. static post (param = {}) {
  13. param.method = 'post'
  14. return axios.http(param)
  15. }
  16. static http (param) {
  17. // console.log(param);
  18. let { method, url, data, dataType = 'json' } = param;
  19. //1 判断url是否为空
  20. if (!url) {
  21. throw new Error('判断不能为空')
  22. }
  23. // 2 处理data
  24. let tmPparam = null;
  25. if (data) {
  26. // console.log(data);
  27. tmPparam = [];
  28. for (let attr in data) {
  29. // console.log(attr);
  30. // 以key=val的形式添加到数组中
  31. tmPparam.push(`${attr}=${data[attr]}`)
  32. }
  33. // 3 以&分割为字符串
  34. tmPparam = tmPparam.join('&');
  35. // console.log(tmPparam);
  36. // 4 get 请求则拼接参数到url上
  37. if (method == 'get') {
  38. url = url + '?' + tmPparam;
  39. tmPparam = null;
  40. }
  41. }
  42. return new Promise((resolve, reject) => {
  43. // ajax的实现
  44. let xhr = new XMLHttpRequest();
  45. xhr.open(method, url);
  46. xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
  47. xhr.send(tmPparam);
  48. xhr.onreadystatechange = function () {
  49. if (xhr.readyState == 4) {
  50. if (xhr.status == 200) {
  51. let res = xhr.response;
  52. if (dataType == 'json') {
  53. res = JSON.parse(res)
  54. }
  55. // 成功
  56. resolve(res)
  57. } else {
  58. reject(xhr.status)
  59. }
  60. }
  61. }
  62. })
  63. }
  64. }

二、如何使用已经封装的ajax

1.get方法

代码如下:

  1. axios.get({
  2. url: './01-ajax.php',
  3. data: { name: 'zs', age: 18 },
  4. dataType: ''
  5. }).then(data => {
  6. console.log(data);
  7. }).catch(data => {
  8. console.log(data);
  9. })

2.post方法

代码如下:

  1. axios.post({
  2. url: './01-ajax.php',
  3. data: { name: 'zs', age: 18 },
  4. dataType: ''
  5. }).then(data => {
  6. console.log(data);
  7. }).catch(data => {
  8. console.log(data);
  9. })


三、调用方法中用到的php文件

  1. <?php
  2. // 引入mysql文件
  3. include('./mysql.php');
  4. // 获取访问的方法
  5. $fn = $_GET['fn'];
  6. // add()
  7. $fn();
  8. // 添加数据的方法
  9. function add(){
  10. // echo 222;
  11. $idea = $_GET['idea'];
  12. $title = $_GET['title'];
  13. $pos = $_GET['pos'];
  14. // echo $idea;
  15. // echo $pos;
  16. // echo $title;
  17. // die;
  18. $sql = "insert into problem values(null,'$title','$idea','$pos')";
  19. $res = query($sql);
  20. echo $res;
  21. }
  22. // 获取数据的方法
  23. function get(){
  24. $sql = 'select * from problem';
  25. $res = select($sql);
  26. print_r(json_encode($res));
  27. }
  28. // 删除数据的方法
  29. function del(){
  30. $id = $_GET['infoId'];
  31. $sql = 'delete from problem where id='.$id;
  32. $res = query($sql);
  33. echo $res;
  34. }
  35. //修改数据的方法
  36. function update(){
  37. $id = $_POST['id'];
  38. $pos = $_POST['pos'];
  39. $title = $_POST['title'];
  40. $idea = $_POST['idea'];
  41. $sql = "update problem set title='$title',pos='$pos',idea='$idea' where id=$id";
  42. $res = query($sql);
  43. echo $res;
  44. }
  45. ?>

总结

        我们应当注意的是,使用ajax时传递的参数以对象的形式传递,且索引的的url不能为空!
 

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

闽ICP备14008679号