git.asbjorn.biz
/
jquery.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
jquery core: fixed deep extend of objects. Closes #1562 & #2820.
[jquery.git]
/
src
/
ajax.js
diff --git
a/src/ajax.js
b/src/ajax.js
index
e0ab7f4
..
1a32b45
100644
(file)
--- a/
src/ajax.js
+++ b/
src/ajax.js
@@
-1,7
+1,7
@@
jQuery.fn.extend({
// Keep a copy of the old load
_load: jQuery.fn.load,
jQuery.fn.extend({
// Keep a copy of the old load
_load: jQuery.fn.load,
-
+
load: function( url, params, callback ) {
if ( typeof url != 'string' )
return this._load( url );
load: function( url, params, callback ) {
if ( typeof url != 'string' )
return this._load( url );
@@
-71,8
+71,8
@@
jQuery.fn.extend({
jQuery.makeArray(this.elements) : this;
})
.filter(function(){
jQuery.makeArray(this.elements) : this;
})
.filter(function(){
- return this.name && !this.disabled &&
- (this.checked || /select|textarea/i.test(this.nodeName) ||
+ return this.name && !this.disabled &&
+ (this.checked || /select|textarea/i.test(this.nodeName) ||
/text|hidden|password/i.test(this.type));
})
.map(function(i, elem){
/text|hidden|password/i.test(this.type));
})
.map(function(i, elem){
@@
-103,7
+103,7
@@
jQuery.extend({
callback = data;
data = null;
}
callback = data;
data = null;
}
-
+
return jQuery.ajax({
type: "GET",
url: url,
return jQuery.ajax({
type: "GET",
url: url,
@@
-159,7
+159,7
@@
jQuery.extend({
_default: "*/*"
}
},
_default: "*/*"
}
},
-
+
// Last-Modified header cache for next request
lastModified: {},
// Last-Modified header cache for next request
lastModified: {},
@@
-233,9
+233,13
@@
jQuery.extend({
if ( s.global && ! jQuery.active++ )
jQuery.event.trigger( "ajaxStart" );
if ( s.global && ! jQuery.active++ )
jQuery.event.trigger( "ajaxStart" );
+ // Matches an absolute URL, and saves the domain
+ var remote = /^(?:\w+:)?\/\/([^\/?#]+)/;
+
// If we're requesting a remote document
// and trying to load JSON or Script with a GET
// If we're requesting a remote document
// and trying to load JSON or Script with a GET
- if ( (!s.url.indexOf("http") || !s.url.indexOf("//")) && s.dataType == "script" && s.type.toLowerCase() == "get" ) {
+ if ( s.dataType == "script" && s.type.toLowerCase() == "get"
+ && remote.test(s.url) && remote.exec(s.url)[1] != location.host ){
var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = s.url;
var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = s.url;
@@
-248,7
+252,7
@@
jQuery.extend({
// Attach handlers for all browsers
script.onload = script.onreadystatechange = function(){
// Attach handlers for all browsers
script.onload = script.onreadystatechange = function(){
- if ( !done && (!this.readyState ||
+ if ( !done && (!this.readyState ||
this.readyState == "loaded" || this.readyState == "complete") ) {
done = true;
success();
this.readyState == "loaded" || this.readyState == "complete") ) {
done = true;
success();
@@
-301,7
+305,7
@@
jQuery.extend({
xml.abort();
return false;
}
xml.abort();
return false;
}
-
+
if ( s.global )
jQuery.event.trigger("ajaxSend", [xml, s]);
if ( s.global )
jQuery.event.trigger("ajaxSend", [xml, s]);
@@
-310,13
+314,13
@@
jQuery.extend({
// The transfer is complete and the data is available, or the request timed out
if ( !requestDone && xml && (xml.readyState == 4 || isTimeout == "timeout") ) {
requestDone = true;
// The transfer is complete and the data is available, or the request timed out
if ( !requestDone && xml && (xml.readyState == 4 || isTimeout == "timeout") ) {
requestDone = true;
-
+
// clear poll interval
if (ival) {
clearInterval(ival);
ival = null;
}
// clear poll interval
if (ival) {
clearInterval(ival);
ival = null;
}
-
+
status = isTimeout == "timeout" && "timeout" ||
!jQuery.httpSuccess( xml ) && "error" ||
s.ifModified && jQuery.httpNotModified( xml, s.url ) && "notmodified" ||
status = isTimeout == "timeout" && "timeout" ||
!jQuery.httpSuccess( xml ) && "error" ||
s.ifModified && jQuery.httpNotModified( xml, s.url ) && "notmodified" ||
@@
-339,13
+343,13
@@
jQuery.extend({
try {
modRes = xml.getResponseHeader("Last-Modified");
} catch(e) {} // swallow exception thrown by FF if header is not available
try {
modRes = xml.getResponseHeader("Last-Modified");
} catch(e) {} // swallow exception thrown by FF if header is not available
-
+
if ( s.ifModified && modRes )
jQuery.lastModified[s.url] = modRes;
// JSONP handles its own success callback
if ( !jsonp )
if ( s.ifModified && modRes )
jQuery.lastModified[s.url] = modRes;
// JSONP handles its own success callback
if ( !jsonp )
- success();
+ success();
} else
jQuery.handleError(s, xml, status);
} else
jQuery.handleError(s, xml, status);
@@
-357,10
+361,10
@@
jQuery.extend({
xml = null;
}
};
xml = null;
}
};
-
+
if ( s.async ) {
// don't attach the handler to the request, just poll it instead
if ( s.async ) {
// don't attach the handler to the request, just poll it instead
- var ival = setInterval(onreadystatechange, 13);
+ var ival = setInterval(onreadystatechange, 13);
// Timeout checker
if ( s.timeout > 0 )
// Timeout checker
if ( s.timeout > 0 )
@@
-369,20
+373,20
@@
jQuery.extend({
if ( xml ) {
// Cancel the request
xml.abort();
if ( xml ) {
// Cancel the request
xml.abort();
-
+
if( !requestDone )
onreadystatechange( "timeout" );
}
}, s.timeout);
}
if( !requestDone )
onreadystatechange( "timeout" );
}
}, s.timeout);
}
-
+
// Send the data
try {
xml.send(s.data);
} catch(e) {
jQuery.handleError(s, xml, null, e);
}
// Send the data
try {
xml.send(s.data);
} catch(e) {
jQuery.handleError(s, xml, null, e);
}
-
+
// firefox 1.5 doesn't fire statechange for sync requests
if ( !s.async )
onreadystatechange();
// firefox 1.5 doesn't fire statechange for sync requests
if ( !s.async )
onreadystatechange();
@@
-410,7
+414,7
@@
jQuery.extend({
if ( s.global && ! --jQuery.active )
jQuery.event.trigger( "ajaxStop" );
}
if ( s.global && ! --jQuery.active )
jQuery.event.trigger( "ajaxStop" );
}
-
+
// return XMLHttpRequest to allow aborting the request etc.
return xml;
},
// return XMLHttpRequest to allow aborting the request etc.
return xml;
},