Jquery源码分析---Ajax分析
2010-09-14 13:39:06 来源:WEB开发网Jquery.ajax是大包大揽的非常复杂的一个方法。它并没有像其它的lib一样,把每个小部分都分开来。它是整个都整在一个函数中。看起来很多,实际上上也没有脱离前面所说的ajax的请求的五步。它的很大一部分代码在处理跨域请求的处理上。下面就分别就ajax的代码进行分析。
ajaxSettings
在①处通过继承的方式把传入参数s和默认的jQuery.ajaxSettings都clone到s变量中。S的同名属性会覆盖jQuery.ajaxSettings的同名属性。这里两次继承s,以便在测试中能检测。
//默认的ajax的请求参数
ajaxSettings : {
url : location.href,//默认是地址栏中url
global : true,//默认支持全局的ajax事件
type : "GET",
timeout : 0,
contentType : "application/x-www-form-urlencoded",
processData : true,
async : true,
data : null,
username : null,
password : null,
accepts : {
xml : "application/xml, text/xml",
html : "text/html",
script : "text/javascript, application/javascript",
json : "application/json, text/javascript",
text : "text/plain",
_default : "*/*"
}
这是默认的ajax的设定,我们要在参数s设定同名的属性来覆盖这些属性。但是我们不能覆盖accepts。这个会在后面的代码用到。我们可以通过设定s.dataType等于accepts中的某一个属性key指定请求的data类型,如xml,html,script,json,text。dataType还支持默认的_default和跨域的jsonp。不过其最终会解析成script。
更多精彩
赞助商链接