//封装一个类似jquery的ajax方法,当传入参数,就可以发送ajax请求
//参数格式如下{// type:"get"/"post",
// dataType:"json"/"jsonp",
// url:"地址",
// data:{key:value}
// success:function(){// }
// }
//还需要一个跨域方法,可以访问远程服务器的数据function myAjax(obj){var type = obj.type || "get";var dataType = obj.dataType || "json";var url = obj.url;var data = obj.data ||{};var success = obj.success;//把data拼接成字符串,dataStr就是参数字符串var dataStr = "";//key=key&com=com&on=flsjfsjdfdsffor(var key in data){dataStr+=key+"="+data[key]+"&"}dataStr = dataStr.slice(0,-1);if(dataType=="json"){var xhr = new XMLHttpRequest();if(type=="get"){xhr.open("get",url+"?"+dataStr);xhr.send(null);}else if(type=="post"){xhr.open("post",url);xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");xhr.send(dataStr)}xhr.onreadystatechange=function(){if(xhr.status==200&&xhr.readyState==4){var json = xhr.responseText;json = JSON.parse(json);success(json);}}}else if(dataType=="jsonp"){//需要有一个函数名,这个函数名要保证不会重名var date = new Date();var cbname = "myJsonp"+date.getTime()+Math.random().toString().slice(2);//我们要把你传入success对应的函数,放在一个特定函数里面window[cbname]=function(data){success(data);//newScript.parentNode.removeChild(newScript);
        };//新建一个script标签,里面的src链接到的就是接口地址(包含参数);var newScript = document.createElement("script");if(dataStr==""){newScript.src = url+"&callback="+cbname;}else{newScript.src = url+"?"+dataStr+"&callback="+cbname;}document.body.appendChild(newScript);}
}

转载于:https://www.cnblogs.com/rlann/p/6359732.html

封装一个类似jquery的ajax方法相关推荐

  1. jQuery通过ajax方法获取json数据不执行success的原因及解决方法

    1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...

  2. jQuery的Ajax方法实现注册邮箱时用户名查询

    利用jQuery实现邮箱注册时的重复用户名查询 Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术.通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新.这意味着可 ...

  3. jquery通过ajax方法获取json数据不执行success

    1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...

  4. 在jquery的ajax方法中的success中使用return要注意的问题

    jquery的ajax方法:在success中使用return:来结束程序的时候,结束的只是success这个方法,也就是说success中的return的作用范围只是success: 如果要想在su ...

  5. ie11 ajax 加载提示,解决在IE11浏览器下,JQuery的AJAX方法不响应问题

    在项目的时候一直都是在使用谷歌浏览器在调试,后来在现场部署到服务器上的时候,客户使用的是IE浏览器,版本是11 在测试的过程中,出现几个问题,虽然是几个问题,但是问题的原因就是AJAX第一次响应,第二 ...

  6. jQuery速记Ajax方法简介

    如果您从未听说过Ajax这个词,请举手. 我敢打赌,几乎所有人的手臂都向下垂,靠近他们的身体. Ajax 最初代表异步JavaScript和XML ,它是最常用的客户端方法之一,可帮助创建异步网站和W ...

  7. ajax的同步,设置JQuery的Ajax方法同步

    如何设置jquery的ajax方法为同步 jax请求默认的都是异步的如果想同步 async设置为false就可以(默认是true) var html = $.ajax({  url: "so ...

  8. jquery ajax 不执行success,jQuery通过ajax方法获取json数据不执行success的原因及解决方法...

    1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...

  9. 封装一个自己的通用Ajax

    一个简单的Ajax请求 首先在封装一个自己的ajax函数之前,我们需要先知道怎么实现一个简单的ajax请求. 这里我建了两个文件,ajax01.html和ajax01.php ajax01.html代 ...

最新文章

  1. Solution 24: 链表翻转
  2. Windows系统更新问题汇总(补充修改)
  3. 转载:sql2005 管道的另一端上无任何进程解决方法
  4. 进栈顺序为abcd则出栈顺序为_线性表之顺序表示
  5. 10.10做题——USACO1.2/洛谷1207回文平方数(Dual Palindromes)
  6. .NET数据提供程序
  7. C/C++ 创建两个链表,实现两个链表低位到高位相加,并输出链表
  8. web 实现分页打印功能
  9. libsvm 实现多分类原理
  10. 使用QT简单写一个串口助手
  11. 微信小程序-map地图标签的初级使用, 拥有图标,气泡,地图本身无法缩放移动需要点击跳转第三方地图平台
  12. 金山打字通计算机英语,金山打字通英文版
  13. 数据分析的 5 种细分方法
  14. kaggle实战—泰坦尼克(四、数据可视化)
  15. 基于PHP聊天室的编程思想
  16. 链家数据分析(社招),骗局???
  17. web应用漏洞扫描工具实践——wmap
  18. matlab 2010 linux,matlab 2010a linux 安装过程
  19. CBTC系统车载人机界面的设计与实现
  20. LINUX矩阵键盘简单介绍,介绍一种新型的矩阵键盘电路

热门文章

  1. Android 7.0后 播放U盘中的视频文件的解决方案
  2. u-boot移植随笔:u-boot的内存分布图
  3. 95-910-170-源码-FlinkSQL-Flink SQL 中的流和动态表
  4. 【Elasticsearch】在 Elasticsearch 中每秒存储 5000 万个事件:我们是如何做到的
  5. 【Elasticsearch】java 客户端 获取 termvectors 词频 统计
  6. 【clickhouse】docker安装clickhouse后本地无法连接
  7. mac下Python2运行SparkSQL
  8. 95-136-040-源码-Operator-Operator简介
  9. Flink的累加器(Accumulator)应用
  10. RocketMQ : UpdateTopicSubCommand command failed connect to xxx:10909 failed