AJAX 是一种用于创建快速动态网页的技术,通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。那如果我们想要取消ajax异步要怎么做呢?下面来我们就来给大家讲解一下。
代码如下:
$.ajax( { type: "POST" , contentType: "application/json" , dataType: 'json' , async: false, //取消异步请求 success: function (result) { // 请求成功回调方法 } , error: function (result, status) { // 请求失败回调方法 } });
async设置为false是关闭异步,不设置默认为true
ajax有哪些功能点?
1. 创建原生Ajax对象
XMLHttpRequest 是 AJAX 的基础,所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建 XMLHttpRequest 对象。那么我们下面来创建一个ajax对象
const instance = new XMLHttpRequest();
这样我们就创建了一个用于进行ajax交互的对象。
当然我们这儿提及一下老版本的ie5、ie6得javascript对象都是使用ActiveX来实现的标准,所以没有XMLHttpRequest对象。他们创建一个对象使用这种方式
const instance = new ActiveXObject("Microsoft.XMLHTTP");
其实我们了解一下就行了,这块在你的代码也不用加上了,现在所有的网站应该都放弃了对低版本ie的支持,这个已经退出了历史舞台,了解一下情况即可。
2. Ajax发送请求
首先来看一下XMLHttpRequest如何发送一个请求到服务器
const instance = new XMLHttpRequest(); instance.open(method,url,async); instance.send();
这里用到了两个方法,第一个open方法其实是配置ajax必要的信息,第二个send才是真正的发起请求到服务器。
3. Ajax通过readyState状态的变化接收服务器响应
当请求被发送到服务器时,我们需要执行一些基于响应的任务,每当 readyState 改变时,就会触发onreadystatechange 事件,readyState 属性存有 XMLHttpRequest 的状态信息。
4. 进级苦恼之跨域请求
跨域是所有前端都必须去面对的一个棘手的问题,当你去请求其他服务器的资源时,浏览器安全限制会阻止该请求。你的请求不会到底服务器,被浏览器阻止了,这也是遵循了同源策略。
那么如何去解决这个跨域呢,通用的有几种方法,但是核心都是需要服务器去配合处理跨域,前端自己无法处理跨域。
第一个采用JsonP方法,这个方法其实也是需要后台去配合处理,由后台来进行请求,然后将数据拼装在一个json对象返回到前台,然后前台通过callback函数来进行操作。这个也比较繁琐。
第二种就是服务端去放一个跨域文件crossdomain.xml放置到服务器端,然后写上可以跨域的ip地址。
第三种配置反向代理服务器,通过代理服务器我们也其实是代理服务器去请求外围,然后转发到我们的服务器上。这样也可以防止跨域。
另外,Ajax能在不更新整个页面的前提下维护数据,这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变的信息。最后大家如果想要了解更多其他工具教程知识,敬请关注奇Q工具网。
推荐阅读: