如何将Ajax请求从异步改为同步

Ajax请求默认的都是异步的 
如果想同步 async设置为false就可以(默认是true)

var html = $.ajax({ 
  url: "some.PHP", 
  async: false 
}).responseText;

或者在全局设置Ajax属性 
$.ajaxSetup({ 
  async: false 
  }); 
再用post,get就是同步的了

转载来源:http://blog.csdn.net/xiaoguang44/article/details/6454727

时间: 2024-11-10 08:28:08

如何将Ajax请求从异步改为同步的相关文章

jquey中ajax请求的异步和同步设置

需要实现的效果:点击按钮后,分别调用三个接口更新数据,数据更新完之后刷新当前页面. (实现方式未必是最好的,此处只关注ajax的异步设置) 一般情况下使用 $.ajax() 是异步处理的,三个ajax请求分别发送后,可以在未有response返回的情况下继续执行下面reload()页面的代码 设置 async 为 false 则可以让ajax请求变成同步执行,就是执行完第一个请求后再执行第二请求. 1 function initData(nick, url, accessToken) { 2 $

ajax请求的异步嵌套问题分析

(本文章以as3代码为例) 问题的产生 在前端开发时,经常会使用到Ajax(Asynchronous Javascript And XML)请求向服务器查询信息(get)或交换数据(post),ajax请求都是异步响应的,每次请求都不能同步返回结果,而且多次请求嵌套在一起时,逻辑很难处理,怎么办呢? 在as3中,get请求的写法通常如下 public static function httpGet(url:String):void { var httpService:HTTPService =n

jQuery Ajax(异步改同步)

在实际使用中,我们经常会用的Ajax(异步加载,在不刷新整个网页的前提下对网页部分内容进行更新) 使用时,偶尔会遇上需要从一个接口中得到一个数组和数据对应的id,在另一个接口上再得到数据,最初写法如下: $.get(url_1, function (data) { var dom = []; for (var i = 0; i < data.length; i++) { var item = data[i]; //两个url不一致,根据id查找另一个表 $.get(url_2, function

【jquery】ajax 请求成功后新开窗口被拦截解决方法

问题: 前面开发项目时碰到一个问题,ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是很可惜被浏览器给拦截了,怎么解决这个问题呢? 分析: 浏览器之所以拦截新开窗口是因为该操作并不是用户主动触发的,所以它认为这是不安全的就拦截了(不过如果是 _self 的话就不会有这个限制),即使 ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('click')),浏览器也会认为不是由用户主动触发的,因此不能被安全执行,所

ajax请求成功后新窗口window.open()被拦截的解决方法

ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是该操作并不是用户主动触发的,所以它认为这是不安全的就拦截了(不过如果是 _self 的话就不会有这个限制),即使 ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('click')),浏览器也会认为不是由用户主动触发的,因此不能被安全执行,所以被拦截. 解决方法: 1.异步改为同步,即:async:false 2.将新开窗口指向为一个对象,然后修改对象的 ur

ajax 请求成功之后window.open()被浏览器拦截弹窗的处理方法

之前一直使用window.open(url),打开新的切换卡加载页面,今天使用opera浏览器测试的时候发现有这么个情况. 最开始以为是window.open()的浏览器兼容性问题,所以尝试了a标签点击,form表单提交,以及window.open()添加"_blank"参数的方式都不行. 后来考虑到可能是ajax请求回调的问题.最后,百度告诉我了一个解决办法,如下. 解决方法: 1.异步改为同步,即:async:false 2.将新开窗口指向为一个对象,然后修改对象的 url,比如:

MVC + AJAX请求失败的问题

以前的工作都是后台的开发,对于ajax也是一知半解,今天遇到一个问题折腾了许久,吐血解决.. 前台代码: 后台代码: 问题描述: 用火狐浏览器调试的时候  每次执行到SUCCESS:function(data)就回跳回 33行,用IE10或者chrome浏览器调试的时候 是不会执行$.AJAX(){},直接跳过ajax 解决方案:(吐血了) 服务 -> "ASP.NET状态服务" 开启 搜了许多解决方案,学习了很多 原文地址:http://jingyan.baidu.com/al

使用jQuery形成Ajax请求

1.创建MVC4新项目,使用"Internet应用程序"模板. 2.添加CustomAjax控制器,具体代码如下. public class CustomAjaxController : Controller { public ActionResult Index() { return View(); } public ActionResult PrivacyPolicy() { return PartialView(); } } 3.添加PrivacyPolicy分部视图 @sect

AJAX请求详解 同步异步 GET和POST

AJAX请求详解 同步异步 GET和POST 上一篇博文(http://www.cnblogs.com/mengdd/p/4191941.html)介绍了AJAX的概念和基本使用,附有一个小例子,下面基于这个例子做一些探讨. 同步和异步 在准备请求的时候,我们给open方法里传入了几个参数,其中第三个参数为true时,表示是异步请求: //1. prepare request xmlHttpRequest.open("GET", "AjaxServlet", tru