// If not, just inject the full result
res.responseText );
- // Add delay to account for Safari's delay in globalEval
- setTimeout(function(){
- self.each( callback, [res.responseText, status, res] );
- }, 13);
+ self.each( callback, [res.responseText, status, res] );
}
});
return this;
// Replace the =? sequence both in the query string and the data
if ( s.data )
- s.data = s.data.replace(jsre, "=" + jsonp);
+ s.data = (s.data + "").replace(jsre, "=" + jsonp);
s.url = s.url.replace(jsre, "=" + jsonp);
// We need to make sure
// If we're requesting a remote document
// and trying to load JSON or Script
- if ( !s.url.indexOf("http") && s.dataType == "script" ) {
+ if ( !s.url.indexOf("http") && ( s.dataType == "script" || s.dataType =="json" ) ) {
var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = s.url;
s.beforeSend(xml);
if ( s.global )
- jQuery.event.trigger("ajaxSend", [xml, s]);
+ jQuery.event.trigger("ajaxSend", [xml, s]);
// Wait for a response to come back
var onreadystatechange = function(isTimeout){
// Determines if an XMLHttpRequest was successful or not
httpSuccess: function( r ) {
try {
+ // IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450
return !r.status && location.protocol == "file:" ||
- ( r.status >= 200 && r.status < 300 ) || r.status == 304 ||
+ ( r.status >= 200 && r.status < 300 ) || r.status == 304 || r.status == 1223 ||
jQuery.browser.safari && r.status == undefined;
} catch(e){}
return false;