Report correct Error object to handleError. Part of the fix for #6677.
[jquery.git] / src / ajax.js
index 897d424..baf7ae8 100644 (file)
@@ -207,7 +207,9 @@ jQuery.extend({
                        jsonp, status, data, type = s.type.toUpperCase();
 
                s.url = s.url.replace( rhash, "" );
-               s.context = origSettings && origSettings.context || s;
+
+               // Use original (not extended) context object if it was provided
+               s.context = origSettings && origSettings.context != null ? origSettings.context : s;
 
                // convert data if not already a string
                if ( s.data && s.processData && typeof s.data !== "string" ) {
@@ -300,10 +302,10 @@ jQuery.extend({
                if ( s.dataType === "script" && type === "GET" && remote ) {
                        var head = document.getElementsByTagName("head")[0] || document.documentElement;
                        var script = document.createElement("script");
-                       script.src = s.url;
                        if ( s.scriptCharset ) {
                                script.charset = s.scriptCharset;
                        }
+                       script.src = s.url;
 
                        // Handle Script loading
                        if ( !jsonp ) {
@@ -492,7 +494,7 @@ jQuery.extend({
                        xhr.send( (type !== "GET" && s.data) || null );
 
                } catch( sendError ) {
-                       jQuery.ajax.handleError( s, xhr, null, e );
+                       jQuery.ajax.handleError( s, xhr, null, sendError );
 
                        // Fire the complete handlers
                        jQuery.ajax.handleComplete( s, xhr, status, data );