Show More
Commit Description:
force log out when password change
Commit Description:
force log out when password change
References:
File last commit:
Show/Diff file:
Action:
node_modules/jquery/src/ajax/jsonp.js
| 103 lines
| 2.7 KiB
| application/javascript
| JavascriptLexer
|
r789 | define( [ | |||
"../core", | ||||
"../var/isFunction", | ||||
"./var/nonce", | ||||
"./var/rquery", | ||||
"../ajax" | ||||
], function( jQuery, isFunction, nonce, rquery ) { | ||||
"use strict"; | ||||
var oldCallbacks = [], | ||||
rjsonp = /(=)\?(?=&|$)|\?\?/; | ||||
// Default jsonp settings | ||||
jQuery.ajaxSetup( { | ||||
jsonp: "callback", | ||||
jsonpCallback: function() { | ||||
var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); | ||||
this[ callback ] = true; | ||||
return callback; | ||||
} | ||||
} ); | ||||
// Detect, normalize options and install callbacks for jsonp requests | ||||
jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { | ||||
var callbackName, overwritten, responseContainer, | ||||
jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? | ||||
"url" : | ||||
typeof s.data === "string" && | ||||
( s.contentType || "" ) | ||||
.indexOf( "application/x-www-form-urlencoded" ) === 0 && | ||||
rjsonp.test( s.data ) && "data" | ||||
); | ||||
// Handle iff the expected data type is "jsonp" or we have a parameter to set | ||||
if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { | ||||
// Get callback name, remembering preexisting value associated with it | ||||
callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ? | ||||
s.jsonpCallback() : | ||||
s.jsonpCallback; | ||||
// Insert callback into url or form data | ||||
if ( jsonProp ) { | ||||
s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); | ||||
} else if ( s.jsonp !== false ) { | ||||
s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; | ||||
} | ||||
// Use data converter to retrieve json after script execution | ||||
s.converters[ "script json" ] = function() { | ||||
if ( !responseContainer ) { | ||||
jQuery.error( callbackName + " was not called" ); | ||||
} | ||||
return responseContainer[ 0 ]; | ||||
}; | ||||
// Force json dataType | ||||
s.dataTypes[ 0 ] = "json"; | ||||
// Install callback | ||||
overwritten = window[ callbackName ]; | ||||
window[ callbackName ] = function() { | ||||
responseContainer = arguments; | ||||
}; | ||||
// Clean-up function (fires after converters) | ||||
jqXHR.always( function() { | ||||
// If previous value didn't exist - remove it | ||||
if ( overwritten === undefined ) { | ||||
jQuery( window ).removeProp( callbackName ); | ||||
// Otherwise restore preexisting value | ||||
} else { | ||||
window[ callbackName ] = overwritten; | ||||
} | ||||
// Save back as free | ||||
if ( s[ callbackName ] ) { | ||||
// Make sure that re-using the options doesn't screw things around | ||||
s.jsonpCallback = originalSettings.jsonpCallback; | ||||
// Save the callback name for future use | ||||
oldCallbacks.push( callbackName ); | ||||
} | ||||
// Call if it was a function and we have a response | ||||
if ( responseContainer && isFunction( overwritten ) ) { | ||||
overwritten( responseContainer[ 0 ] ); | ||||
} | ||||
responseContainer = overwritten = undefined; | ||||
} ); | ||||
// Delegate to script | ||||
return "script"; | ||||
} | ||||
} ); | ||||
} ); | ||||