Ajax核心——XMLHttpRequest基础

XMLHttpRequest对象负责将用户信息以异步方式发送到服务器,并接受服务器返回的相应信息和数据。故XMLHttpRequest是Ajax技术体系中最为核心的技术,缺少了它,Ajax的其余技术就无法成为一个有机的整体。Ajax的XML创建XMLHttpReques在使用XMLHttpRequest对象发送请求和处理响应之前,首先必须使用JavaScript创建XMLHttpRequestRequest对象。属性和方法XMLHttpRequest对象提供了一系列属性和方法,来向服务器端发起异步HTTP

Ajax请求中的async属性

async属性类型:Boolean默认值:true。如果需要发送同步请求,请将此选项设置为false。使用案例问题当连续点击时,会出现number增加的值和你点击次数不相符。ajax默认是异步的请求。当请求"/add"还未执行完成,就可能已经执行下一次请求,导致before_num不是上一次请求后的值。解决将async置为false,用同步请求将浏览器锁住,保证before_num是上一次请求的值。

将ajax方式设置为同步

最近在做一个含有多个下拉框页面的保存和获取功能时,发现获取下拉框的选项值有时正确有时不正确。故从源头查起:1、下拉框的值均是在页面加载时去后台通过异步请求数据动态生成的2、在加载页面获取数据进行判断时,下拉框值的信息有可能还未获取3、将ajax请求方式设置为同步,解决。有两种方式:1、每个ajax请求中添加属性async:false;2、全局设置ajax属性$.ajaxSetup;因为该页面涉及到多个ajax请求,所以采用第二种方式。

AJAX请求是否保留PHP会话信息?

如果我有一个用户登录我的网站,将他的id存储在$_SESSION,并从他的浏览器,他点击了一个“保存”按钮,将向服务器发出AJAX请求。就服务器而言,AJAX请求和常规页面请求之间没有区别。它们都是HTTP请求,它们都以相同的方式在头中包含cookie信息。从客户端,相同的Cookie将始终发送到服务器,无论是常规请求还是AJAX请求。Javascript代码不需要做任何特殊的事情,甚至不需要知道这种情况,它只是像普通请求一样工作。

微信开发 异步批量上传下载图片

在实现微信多图片上传的时候,我们总会遇到异步请求的问题,由于我们往往不可能在chooseImage的时候就开始上传图片,所以我们需要把localIds和serverId保存下来,但是在wx.chooseImage和uploadImage两个方法中都是异步请求的,我们在success的function中存储数据,然后在ajax外立即又调用了这个数据,则该数据是没有值或为默认值的,因为请求已经提交,不等服务器返回结果就立马往下执行,所以此时的保存的数据肯定不存在