ajax介绍
Ajax使用JS的XmlHttpRequest对象,在建立对象后,通过该对象的open、send等方法发送HTTP的请求,并注册异步的回调函数来处理该对象调用后的返回值,在返回正确和错误的情况下分别做相应的处理。
在jquery框架中使用ajax
使用原生js的ajax访问一般代码比较复杂,所以大多js框架都封装了ajax相关的操作。如在jquery中,通过调用ajax方法,在方法中定义待传输数据的方法名称、数据内容以及成功或失败后的返回方法,即可完成一次ajax的请求响应过程。
HTTP
ajax本质上使用的是HTTP协议,在其中定义HTTP方法、URI、传输数据(一般使用JSON格式)等。
跨域访问
在AJAX请求过程中,如果包含的URI与该网页URI的主域名、子域名、协议或访问端口不同时,系统认为该次访问属于跨域访问。在默认配置情况下,这种访问方式是被拒绝的。
JSONP
如果系统存在跨域访问时,可使用JSONP的方式封装跨域访问的AJAX请求,但该请求方式只对GET类访问是有效的,它会在URL对于的数据段部分增加一个转换处理。
在请求中,可以增加一个GET参数,名称为callback,内容为jquery自动生成的一个唯一值参数。在收到请求后,将callback的值加上实际待返回的数据返回内容。
实现跨域访问的其他方式
HTML5使用的XMLREQUEST2实现了跨域访问,低于IE10不支持。
服务端改造方法.png按照图中的方式,在服务器端HTTP头部参数中增加这两个参数后,即可实现跨域的HTTP请求,这种方法比JSONP的方式实现简单很多。
网友评论