概况
通过http请求加载远程数据
Jquery底层ajax实现。简单易用的高层实现见$.get,$.post等。$.ajax()返回其创建的XMLHttpRequset对象。大多数情况下可以无需直接操作该函数,除非你需要操作不常用的选项,以获得更多的灵活性。
所有的选项都可以通过$.ajax()Setuo()函数来获得全局设置
回调函数
如果需要处理$.ajax得到的数据。需要使用回调函数。BeforeSed、error、dataFilter、success、complete。
beforeSend 在发送请求之前调用,并且传入一个XMLHttpRequest作为参数
error在请求出错时调用,传入xmlhttprequest对象,描述错误类型的字符创以及一个异常对象(如果有的话)
dataFilter在请求成功之后调用,传入返回的数据以及“datatype”参数的值,并且必须返回新的数据(可能处理过的)传递给success回调函数
success当请求之后调用,传入返回值的数据,以及包含成功代码的字符创
complete当请求完成 之后调用这个函数,无乱陈宫或失败,闯入xmlhttprequest对象,以及一个包含成功或错误代码的字符创。
数据类型
$.ajax()函数依赖服务器提供的信息处理返回的数据,如果服务器报告的数据是xml。那么返回的结果就可以普通的xml方法或者jquery的选择器来遍历,如果其他类型,比如html,则数据就以文本形式来对待
通过datatype选项还可以指定其他不同数据类型处理方式,除了单纯的exml,还可以指定html,json,jsonp,script或者text。
其中,text和xml类型返回的数据不会经过处理,数据仅仅简单的将xmlhttprequest的responsetext或responsehttml属性传递success回调函数
参数
url[settings]
url:一个用来包含发送请求的url字符串
settings:ajax请求设置,所有选项都是可选的
datatype
预期服务器返回的数据类型。如果不指定,jquery将自动根据http包mlme信息智能判断,比如xml mlme类型被识别为xml,在1.4中,json就会生成一个javscript对象,而 script则会执行这个脚本,随后服务器端返回的数据会根据这个值解析后,传递给回调函数,可用值
"xml": 返回 XML 文档,可用 jQuery 处理
"html": 返回纯文本 HTML 信息;包含的script标签会在插入dom时执行。
"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了"cache"参数。'''注意:'''在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)
"json": 返回 JSON 数据 。