当前位置:   article > 正文

对AJAX的get和post请求方式进行函数封装_封装两个公共请求函数(使用axios/ajax均可,请求方式为post和get

封装两个公共请求函数(使用axios/ajax均可,请求方式为post和get

        在使用ajax发送请求时,有get和post两种请求方式,两种请求方式的写法均比较固定, 为了使用方便,进行对get和post两种请求方式进行函数封装,这样,下次需要使用时,可直接引入js文件使用封装好的函数。

        首先对get请求方式进行封装

  1. function ajax_get(url,data){
  2. //url是请求的文件路径,data是需要上传的数据,如 "name=jack"
  3. //创建异步对象
  4. var ajax = new XMLHttpRequest();
  5. //判断是否有上传的数据
  6. if(data){
  7. url + = '?';
  8. url + = data;
  9. }
  10. else{}
  11. //设置method为get
  12. ajax.open('get',url);
  13. //发送
  14. ajax.send();
  15. //注册事件
  16. ajax.onreadystatechange = function(){
  17. if(ajax.readyState == 4 && ajax.status == 200){
  18. console.log(ajax.responseText);
  19. }
  20. }
  21. }

然后对post请求方式进行封装

post方式和get方式几乎相同,不同点是post上传的数据放在send()中,而get的则和url合拼之后放在open()中,并且post方式需要在ajax.send()和ajax.open()之间多添加ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 

  1. function ajax_post(url,data){
  2. //url是请求文件路径,data是上传的数据
  3. //创建异步对象
  4. var ajax = new XMLHttpRequest();
  5. //设置method
  6. ajax.open('post',rul);
  7. //添加header
  8. ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  9. //判断是否有上传数据
  10. if(data){
  11. //有上传数据则放入send()中
  12. ajax.send(data);
  13. }else{
  14. ajax.send();
  15. }
  16. //注册事件
  17. ajax.onreadystatechange = function(){
  18. if(ajax.readyState == 4 && ajax.status == 200){
  19. //获取数据
  20. console.log(ajax.responseText);
  21. }
  22. }
  23. }

get和post封装为同一个函数

最后,对get和post两种请求方式一起封装为同一个函数,并进行优化,以上两种封装方式,都规定了函数参数的顺序,现在把参数转换为一个对象,这样传入参数时就不需要考虑参数的顺序问题了。

/*option{
  url:"",
 data:"",
  method:"",
  success:function(data){}
  其中success是回调函数,为了使用函数返回的数据,在封装的函数中给success函数传入一个实参
}
*/

  1. function ajax_tool(option){
  2. //传入一个对象参数
  3. //创建异步对象
  4. var ajax = new XMLHttpRequest();
  5. //判断请求方式是否为get
  6. if(option.method == 'get'){
  7. //方式为get,判断是否有上传的数据
  8. if(option.data){
  9. //有上传数据则拼接在url后面
  10. option.url += '?';
  11. option.url += option.data;
  12. }
  13. //设置method
  14. ajax.open(option.method,option.url);
  15. //发送
  16. ajax.send();
  17. }
  18. else{
  19. //post 请求方式部分
  20. //设置method
  21. ajax.open(option.method,option.url);
  22. //添加header
  23. ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  24. //判断是否有上传数据,设置send()
  25. if(option.data){
  26. ajax.send(option.data);
  27. }else{
  28. ajax.send();
  29. }
  30. }
  31. //get和post 注册事件
  32. ajax.onreadystatechange = function(){
  33. if(ajax.readyState == 4 && ajax.status == 200){
  34. //拿到数据后,通过传参数给回调函数success返回数据
  35. option.success(ajax.responseText);
  36. }
  37. }
  38. }

到此,对ajax的get和post请求方式的封装就完成了,如有错误欢迎大家指出,也请大家多多见谅,谢谢。

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

闽ICP备14008679号