/*
注意:
1、检查提交方式类型:get/post是否和后台一致(该类型接口文档会标注,若一致仍然报错,请与后台再次确认)
2、检查接口url是否写错
3、检查接口是否需要传数据到后台,若需上传,便仔细把自己上传的数据和接口文档上对比,
观察有没有错写、多写、少写,数据格式是否正确(一般和后台人员确认一下要传什么数据格式),观察上传的值是否会出现undefined
4、若以上都正确了还是报错,那么便让后台人员看看是否是后台程序出错(一般http状态码返回500就是后台程序出错,但是也不排除是前端传递过去的数据不对导致后台报错)
6、如果出现跨域问题,就找后台解决

*/

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ajax封装</title>
</head>
<body>
<!-- ajax:异步的javascript和XML,能够向服务器请求额外的数据而无需卸载页面,会带来更好的用户体验,包含XML但与ajax通信与数据格式无关 -->
<!-- ajax核心:XMLHttpRequert对象(简称XHR);request(请求) -->
<script type="text/javascript">
// 封装
function ajax(method,_url,data,fun) {
// 1、定义一个xhr变量存放ajax对象
var xhr;
// 2、当window对象里面存在XMLHttpRequest时
if (window.XMLHttpRequest) {
// 实例化一个XMLHttpRequest()构造函数
xhr = new XMLHttpRequest();
} else {
// 为防止一些浏览器中没有XMLHttpRequest
// 当window对象里面没有XMLHttpRequest时就实例化一个ActiveXObject()构造函数
xhr = new ActiveXObject("Microsoft.XMLHTTP");
} // 3、使用XHR时要调用open(a1,a2,a3);方法a1:请求类型,a2:请求的url,a3:是否发送异步请求(ture/false)
xhr.open(method,_url,true); // 4、send();请求在主体发送的数据
// 发送请求如果需要发送到服务器的端的数据,那么send(data) ,data:数据 需转换为字符串类型的
xhr.send(JSON.stringify(data));
//当readyState值每发生一次变化就调用一次onreadystatechange方法
xhr.onreadystatechange = function() {
// readystate为4代表已经接收全部响应数据,并且已经可以在客户端使用
if (xhr.readyState == 4) {
// readystate:状态为200时表示请求已经完全成功
if (xhr.status == 200) {
// responseText:作为响应主体被返回的文本
// JSON.parse():将字符串json转换为数组类型的json
// 把返回的数据responseText从string转换为JSON数据格式并打印出来
fun(JSON.parse(xhr.responseText));
}
}
}
} // 调用封装好的函数
ajax("get","http://192.168.95.237:81/ajaxapi/public/index.php/api/api/index",null,function(data){
document.body.innerHTML=data.code;
}); // post提交
var data={
stuid:"1027"
}
ajax("post","http://192.168.95.237:81/ajaxapi/public/index.php/api/api/selectuserid",data,function(data){
document.body.innerHTML=data.code;
}); /*
注意:
1、检查提交方式类型:get/post是否和后台一致(该类型接口文档会标注,若一致仍然报错,请与后台再次确认)
2、检查接口url是否写错
3、检查接口是否需要传数据到后台,若需上传,便仔细把自己上传的数据和接口文档上对比,
观察有没有错写、多写、少写,数据格式是否正确(一般和后台人员确认一下要传什么数据格式),观察上传的值是否会出现undefined
4、若以上都正确了还是报错,那么便让后台人员看看是否是后台程序出错(一般http状态码返回500就是后台程序出错,但是也不排除是前端传递过去的数据不对导致后台报错)
6、如果出现跨域问题,就找后台解决 */
</script>
</body>
</html>

封装好的Ajax的更多相关文章

  1. 不借助jquery封装好的ajax,你能用js手写ajax框架吗

    不借助jquery封装好的ajax,你能手写ajax框架吗?最基础的ajax框架,一起来围观吧. .创建XMLHttpRequest对象 var xhr = new XMLHttpRequest(); ...

  2. 封装通用的 ajax, 基于 jQuery。

    在前端异步获取数据时候每次都是使用 ajax:为了通用性更好,然而封装通用的 ajax 是一个一劳永逸的办法. 本次基于 jQuery 封装实现: 第一步: 引入 jQuery: <script ...

  3. 封装、调用ajax

    1.JavaScript代码 //封装ajaxfunction ajax(obj) { var xhr = new createXHR(); obj.url = obj.url + '?rand=' ...

  4. 封装JavaScript的AJAX

    // 创建request对象 function createXMLHttpRequest() { try { return new XMLHttpRequest();//大多数浏览器 } catch ...

  5. 封装自己的Ajax框架

    Ajax技术就是利用javascript和xml实现异步交互的功能. 首先先来介绍一下Ajax相关知识点 一.Ajax对象的创建 1.创建Ajax对象的方式 a.第一种方式是针对IE浏览器 b.第二种 ...

  6. AJAX的来龙去脉(由来)-如何被封装出来的--ajax发送异步请求(四步操作)

    <黑马程序员_超全面的JavaWeb视频教程vedio\JavaWeb视频教程_day23_ajax> \JavaWeb视频教程_day23_ajax\day23ajax_avi\14.打 ...

  7. 使用es6的then()方法封装jquery的ajax请求

    使用场景: jsp页面中使用jquery的ajax请求比较频繁,以前vue框架的项目用过axios,所以就想着用then()封装一个公共请求的方法,这样每次请求就不用那么麻烦的写一大堆请求参数了. 示 ...

  8. 封装JS实现Ajax

    这两天仔细理解了一下Ajax,然后整理封装了一下,如果有什么不对的地方,请指教,谢谢! AJAX AJAX = Asynchronous JavaScript and XML(异步的 JavaScri ...

  9. 超简单 Promise封装小程序ajax 超好用 以及封装登录

    //网络类 //封装网络请求 const ajax = (ajaxData, method) => { wx.showLoading({ title: '加载中', mask: true }); ...

  10. 封装springmvc处理ajax请求结果

    原文链接:http://blog.csdn.net/qq_37936542/article/details/79064818 需求描述:ajax向后台发起请求,springmvc在处理完请求后返回的结 ...

随机推荐

  1. C#剪切生成高质量缩放图片

    /// <summary> /// 高质量缩放图片 /// </summary> /// <param name="OriginFilePath"&g ...

  2. GIT管理以及运行规范

    继前天看分享的前后端分离后,又重新研究了GIT分支与各个环境的应用. 从开始使用git就一直有在网上查各种资料,查他的运行规范.但不知道是自己理解不够还是怎么的,一直用得不是很好. 根据自己的摸索,整 ...

  3. Ruby on Rails 的模型 validates 验证

    validate(), 这个方法在每次保存数据时都会被调用.如:def validate if name.blank? && email.blank?  errors.add_to_b ...

  4. Python异步IO之协程(二):使用asyncio的不同方法实现协程

    引言:在上一章中我们介绍了从yield from的来源到async的使用,并在最后以asyncio.wait()方法实现协程,下面我们通过不同控制结构来实现协程,让我们一起来看看他们的不同作用吧- 在 ...

  5. MongoDB 实体映射

    @Id主键,不可重复,自带索引,可以在定义的列名上标注,需要自己生成并维护不重复的约束.如果自己不设置@Id主键,mongo会自动生成一个唯一主键,并且插入时效率远高于自己设置主键.在实际业务中不建议 ...

  6. django中CBV加csrf_exempt函数问题

    CSRF Token相关装饰器在CBV只能加到dispatch方法上 备注: 1. csrf_protect,为当前函数强制设置防跨站请求伪造功能,即便settings中没有设置全局中间件. 2. c ...

  7. php支持多个地址跨域访问

    //跨域访问的时候才会存在此字段 $origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : ''; $allow_ori ...

  8. JavaScript异步与Promise基本用法(resolve与reject)

    Promise解决的问题相信每个前端都遇到过这样一个问题,当一个异步任务的执行需要依赖另一个异步任务的结果时,我们一般会将两个异步任务嵌套起来,这种情况发生一两次还可以忍,但是发生很多次之后,就形成了 ...

  9. 20190521 - macOS 中显示隐藏文件的快捷键

    macOS 中显示隐藏文件,以前总是借助于命令行或第三方软件,其实有一个快捷键: shift + cmmand + .

  10. 【HTML】常用的标签学习(2)

    现在的使用的html语言都是h5,但是h5也是从h4继承发展来的,所以h4的标签我们也要学习,然后加上h5新增的标签,那么html这门语言才算学习完毕.上次学习了h4的一些常用标签,今天学习h4剩下的 ...