Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
jquery
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
夏彬
jquery
Commits
dd5bf421
Commit
dd5bf421
authored
Jan 23, 2011
by
jaubourg
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Apply JQuery Core Style Guidelines to ajax.js and ajax/*.js,
parent
30082d9e
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
182 additions
and
199 deletions
+182
-199
ajax.js
src/ajax.js
+117
-121
jsonp.js
src/ajax/jsonp.js
+11
-9
script.js
src/ajax/script.js
+12
-17
xhr.js
src/ajax/xhr.js
+42
-52
No files found.
src/ajax.js
View file @
dd5bf421
This diff is collapsed.
Click to expand it.
src/ajax/jsonp.js
View file @
dd5bf421
...
@@ -13,9 +13,9 @@ jQuery.ajaxSetup({
...
@@ -13,9 +13,9 @@ jQuery.ajaxSetup({
// Detect, normalize options and install callbacks for jsonp requests
// Detect, normalize options and install callbacks for jsonp requests
// (dataIsString is used internally)
// (dataIsString is used internally)
jQuery
.
ajaxPrefilter
(
"json jsonp"
,
function
(
s
,
originalSettings
,
dataIsString
)
{
jQuery
.
ajaxPrefilter
(
"json jsonp"
,
function
(
s
,
originalSettings
,
dataIsString
)
{
dataIsString
=
(
typeof
(
s
.
data
)
===
"string"
);
dataIsString
=
(
typeof
(
s
.
data
)
===
"string"
);
if
(
s
.
dataTypes
[
0
]
===
"jsonp"
||
if
(
s
.
dataTypes
[
0
]
===
"jsonp"
||
originalSettings
.
jsonpCallback
||
originalSettings
.
jsonpCallback
||
...
@@ -47,23 +47,25 @@ jQuery.ajaxPrefilter("json jsonp", function(s, originalSettings, dataIsString) {
...
@@ -47,23 +47,25 @@ jQuery.ajaxPrefilter("json jsonp", function(s, originalSettings, dataIsString) {
s
.
url
=
url
;
s
.
url
=
url
;
s
.
data
=
data
;
s
.
data
=
data
;
window
[
jsonpCallback
]
=
function
(
response
)
{
window
[
jsonpCallback
]
=
function
(
response
)
{
responseContainer
=
[
response
];
responseContainer
=
[
response
];
};
};
s
.
complete
=
[
function
()
{
s
.
complete
=
[
function
()
{
// Set callback back to previous value
// Set callback back to previous value
window
[
jsonpCallback
]
=
previous
;
window
[
jsonpCallback
]
=
previous
;
// Call if it was a function and we have a response
// Call if it was a function and we have a response
if
(
previous
)
{
if
(
previous
)
{
if
(
responseContainer
&&
jQuery
.
isFunction
(
previous
)
)
{
if
(
responseContainer
&&
jQuery
.
isFunction
(
previous
)
)
{
window
[
jsonpCallback
]
(
responseContainer
[
0
]
);
window
[
jsonpCallback
]
(
responseContainer
[
0
]
);
}
}
}
else
{
}
else
{
// else, more memory leak avoidance
// else, more memory leak avoidance
try
{
delete
window
[
jsonpCallback
];
}
catch
(
e
){}
try
{
delete
window
[
jsonpCallback
];
}
catch
(
e
)
{}
}
}
},
s
.
complete
];
},
s
.
complete
];
...
@@ -82,6 +84,6 @@ jQuery.ajaxPrefilter("json jsonp", function(s, originalSettings, dataIsString) {
...
@@ -82,6 +84,6 @@ jQuery.ajaxPrefilter("json jsonp", function(s, originalSettings, dataIsString) {
// Delegate to script
// Delegate to script
return
"script"
;
return
"script"
;
}
}
});
}
);
})(
jQuery
);
})(
jQuery
);
src/ajax/script.js
View file @
dd5bf421
...
@@ -2,47 +2,42 @@
...
@@ -2,47 +2,42 @@
// Install script dataType
// Install script dataType
jQuery
.
ajaxSetup
({
jQuery
.
ajaxSetup
({
accepts
:
{
accepts
:
{
script
:
"text/javascript, application/javascript"
script
:
"text/javascript, application/javascript"
},
},
contents
:
{
contents
:
{
script
:
/javascript/
script
:
/javascript/
},
},
converters
:
{
converters
:
{
"text script"
:
jQuery
.
globalEval
"text script"
:
jQuery
.
globalEval
}
}
});
});
// Handle cache's special case and global
// Handle cache's special case and global
jQuery
.
ajaxPrefilter
(
"script"
,
function
(
s
)
{
jQuery
.
ajaxPrefilter
(
"script"
,
function
(
s
)
{
if
(
s
.
cache
===
undefined
)
{
if
(
s
.
cache
===
undefined
)
{
s
.
cache
=
false
;
s
.
cache
=
false
;
}
}
if
(
s
.
crossDomain
)
{
if
(
s
.
crossDomain
)
{
s
.
type
=
"GET"
;
s
.
type
=
"GET"
;
s
.
global
=
false
;
s
.
global
=
false
;
}
}
});
}
);
// Bind script tag hack transport
// Bind script tag hack transport
jQuery
.
ajaxTransport
(
"script"
,
function
(
s
)
{
jQuery
.
ajaxTransport
(
"script"
,
function
(
s
)
{
// This transport only deals with cross domain requests
// This transport only deals with cross domain requests
if
(
s
.
crossDomain
)
{
if
(
s
.
crossDomain
)
{
var
script
,
var
script
,
head
=
document
.
getElementsByTagName
(
"head"
)[
0
]
||
document
.
documentElement
;
head
=
document
.
getElementsByTagName
(
"head"
)[
0
]
||
document
.
documentElement
;
return
{
return
{
send
:
function
(
_
,
callback
)
{
send
:
function
(
_
,
callback
)
{
script
=
document
.
createElement
(
"script"
);
script
=
document
.
createElement
(
"script"
);
script
.
async
=
"async"
;
script
.
async
=
"async"
;
...
@@ -53,9 +48,9 @@ jQuery.ajaxTransport("script", function(s) {
...
@@ -53,9 +48,9 @@ jQuery.ajaxTransport("script", function(s) {
script
.
src
=
s
.
url
;
script
.
src
=
s
.
url
;
// Attach handlers for all browsers
// Attach handlers for all browsers
script
.
onload
=
script
.
onreadystatechange
=
function
(
_
,
isAbort
)
{
script
.
onload
=
script
.
onreadystatechange
=
function
(
_
,
isAbort
)
{
if
(
!
script
.
readyState
||
/loaded|complete/
.
test
(
script
.
readyState
)
)
{
if
(
!
script
.
readyState
||
/loaded|complete/
.
test
(
script
.
readyState
)
)
{
// Handle memory leak in IE
// Handle memory leak in IE
script
.
onload
=
script
.
onreadystatechange
=
null
;
script
.
onload
=
script
.
onreadystatechange
=
null
;
...
@@ -66,10 +61,10 @@ jQuery.ajaxTransport("script", function(s) {
...
@@ -66,10 +61,10 @@ jQuery.ajaxTransport("script", function(s) {
}
}
// Dereference the script
// Dereference the script
script
=
0
;
script
=
undefined
;
// Callback if not abort
// Callback if not abort
if
(
!
isAbort
)
{
if
(
!
isAbort
)
{
callback
(
200
,
"success"
);
callback
(
200
,
"success"
);
}
}
}
}
...
@@ -81,11 +76,11 @@ jQuery.ajaxTransport("script", function(s) {
...
@@ -81,11 +76,11 @@ jQuery.ajaxTransport("script", function(s) {
abort
:
function
()
{
abort
:
function
()
{
if
(
script
)
{
if
(
script
)
{
script
.
onload
(
0
,
1
);
script
.
onload
(
0
,
1
);
}
}
}
}
};
};
}
}
});
}
);
})(
jQuery
);
})(
jQuery
);
src/ajax/xhr.js
View file @
dd5bf421
...
@@ -46,39 +46,38 @@ try {
...
@@ -46,39 +46,38 @@ try {
jQuery
.
support
.
ajax
=
!!
testXHR
;
jQuery
.
support
.
ajax
=
!!
testXHR
;
// Does this browser support crossDomain XHR requests
// Does this browser support crossDomain XHR requests
jQuery
.
support
.
cors
=
testXHR
&&
"withCredentials"
in
testXHR
;
jQuery
.
support
.
cors
=
testXHR
&&
(
"withCredentials"
in
testXHR
)
;
// No need for the temporary xhr anymore
// No need for the temporary xhr anymore
testXHR
=
undefined
;
testXHR
=
undefined
;
// Create transport if the browser can provide an xhr
// Create transport if the browser can provide an xhr
if
(
jQuery
.
support
.
ajax
)
{
if
(
jQuery
.
support
.
ajax
)
{
jQuery
.
ajaxTransport
(
function
(
s
)
{
jQuery
.
ajaxTransport
(
function
(
s
)
{
// Cross domain only allowed if supported through XMLHttpRequest
// Cross domain only allowed if supported through XMLHttpRequest
if
(
!
s
.
crossDomain
||
jQuery
.
support
.
cors
)
{
if
(
!
s
.
crossDomain
||
jQuery
.
support
.
cors
)
{
var
callback
;
var
callback
;
return
{
return
{
send
:
function
(
headers
,
complete
)
{
send
:
function
(
headers
,
complete
)
{
// #5280: we need to abort on unload or IE will keep connections alive
// #5280: we need to abort on unload or IE will keep connections alive
if
(
!
xhrUnloadAbortInstalled
)
{
if
(
!
xhrUnloadAbortInstalled
)
{
xhrUnloadAbortInstalled
=
1
;
xhrUnloadAbortInstalled
=
1
;
jQuery
(
window
).
bind
(
"unload"
,
function
()
{
jQuery
(
window
).
bind
(
"unload"
,
function
()
{
// Abort all pending requests
// Abort all pending requests
jQuery
.
each
(
xhrs
,
function
(
_
,
xhr
)
{
jQuery
.
each
(
xhrs
,
function
(
_
,
xhr
)
{
if
(
xhr
.
onreadystatechange
)
{
if
(
xhr
.
onreadystatechange
)
{
xhr
.
onreadystatechange
(
1
);
xhr
.
onreadystatechange
(
1
);
}
}
});
}
);
});
}
);
}
}
// Get a new xhr
// Get a new xhr
...
@@ -88,38 +87,36 @@ if ( jQuery.support.ajax ) {
...
@@ -88,38 +87,36 @@ if ( jQuery.support.ajax ) {
// Open the socket
// Open the socket
// Passing null username, generates a login popup on Opera (#2865)
// Passing null username, generates a login popup on Opera (#2865)
if
(
s
.
username
)
{
if
(
s
.
username
)
{
xhr
.
open
(
s
.
type
,
s
.
url
,
s
.
async
,
s
.
username
,
s
.
password
);
xhr
.
open
(
s
.
type
,
s
.
url
,
s
.
async
,
s
.
username
,
s
.
password
);
}
else
{
}
else
{
xhr
.
open
(
s
.
type
,
s
.
url
,
s
.
async
);
xhr
.
open
(
s
.
type
,
s
.
url
,
s
.
async
);
}
}
// Requested-With header
// Requested-With header
// Not set for crossDomain requests with no content
// Not set for crossDomain requests with no content
// (see why at http://trac.dojotoolkit.org/ticket/9486)
// (see why at http://trac.dojotoolkit.org/ticket/9486)
// Won't change header if already provided
// Won't change header if already provided
if
(
!
(
s
.
crossDomain
&&
!
s
.
hasContent
)
&&
!
headers
[
"x-requested-with"
]
)
{
if
(
!
(
s
.
crossDomain
&&
!
s
.
hasContent
)
&&
!
headers
[
"x-requested-with"
]
)
{
headers
[
"x-requested-with"
]
=
"XMLHttpRequest"
;
headers
[
"x-requested-with"
]
=
"XMLHttpRequest"
;
}
}
// Need an extra try/catch for cross domain requests in Firefox 3
// Need an extra try/catch for cross domain requests in Firefox 3
try
{
try
{
jQuery
.
each
(
headers
,
function
(
key
,
value
)
{
jQuery
.
each
(
headers
,
function
(
key
,
value
)
{
xhr
.
setRequestHeader
(
key
,
value
);
xhr
.
setRequestHeader
(
key
,
value
);
}
);
});
}
catch
(
_
)
{}
}
catch
(
_
)
{}
// Do send the request
// Do send the request
try
{
try
{
xhr
.
send
(
(
s
.
hasContent
&&
s
.
data
)
||
null
);
xhr
.
send
(
(
s
.
hasContent
&&
s
.
data
)
||
null
);
}
catch
(
e
)
{
}
catch
(
e
)
{
complete
(
0
,
"error"
,
""
+
e
);
complete
(
0
,
"error"
,
""
+
e
);
return
;
return
;
}
}
// Listener
// Listener
callback
=
function
(
_
,
isAbort
)
{
callback
=
function
(
_
,
isAbort
)
{
// Was never called and is aborted or complete
// Was never called and is aborted or complete
if
(
callback
&&
(
isAbort
||
xhr
.
readyState
===
4
)
)
{
if
(
callback
&&
(
isAbort
||
xhr
.
readyState
===
4
)
)
{
...
@@ -128,20 +125,18 @@ if ( jQuery.support.ajax ) {
...
@@ -128,20 +125,18 @@ if ( jQuery.support.ajax ) {
callback
=
0
;
callback
=
0
;
// Do not keep as active anymore
// Do not keep as active anymore
if
(
handle
)
{
if
(
handle
)
{
xhr
.
onreadystatechange
=
jQuery
.
noop
;
xhr
.
onreadystatechange
=
jQuery
.
noop
;
delete
xhrs
[
handle
];
delete
xhrs
[
handle
];
}
}
// If it's an abort
// If it's an abort
if
(
isAbort
)
{
if
(
isAbort
)
{
// Abort it manually if needed
// Abort it manually if needed
if
(
xhr
.
readyState
!==
4
)
{
if
(
xhr
.
readyState
!==
4
)
{
xhr
.
abort
();
xhr
.
abort
();
}
}
}
else
{
}
else
{
// Get info
// Get info
var
status
=
xhr
.
status
,
var
status
=
xhr
.
status
,
statusText
,
statusText
,
...
@@ -155,56 +150,51 @@ if ( jQuery.support.ajax ) {
...
@@ -155,56 +150,51 @@ if ( jQuery.support.ajax ) {
}
}
responses
.
text
=
xhr
.
responseText
;
responses
.
text
=
xhr
.
responseText
;
try
{
// Firefox throws an exception when accessing statusText for faulty cross-domain requests
// Firefox throws an exception when accessing
// statusText for faulty cross-domain requests
try
{
statusText
=
xhr
.
statusText
;
statusText
=
xhr
.
statusText
;
}
catch
(
e
)
{
}
catch
(
e
)
{
// We normalize with Webkit giving an empty statusText
statusText
=
""
;
// We normalize with Webkit giving an empty statusText
statusText
=
""
;
}
}
// Filter status for non standard behaviours
// Filter status for non standard behaviours
// (so many they seem to be the actual "standard")
status
=
status
=
// Opera returns 0 when it should be 304
// Opera returns 0 when it should be 304
// Webkit returns 0 for failing cross-domain no matter the real status
// Webkit returns 0 for failing cross-domain no matter the real status
status
===
0
?
status
===
0
?
(
(
!
s
.
crossDomain
||
statusText
?
// Webkit, Firefox: filter out faulty cross-domain requests
// Webkit, Firefox: filter out faulty cross-domain requests
!
s
.
crossDomain
||
statusText
?
(
(
responseHeaders
?
// Opera: filter out real aborts #6060
// Opera: filter out real aborts #6060
304
responseHeaders
?
:
304
:
0
0
)
)
:
:
// We assume 302 but could be anything cross-domain related
302
// We assume 302 but could be anything cross-domain related
302
)
)
:
:
(
(
status
==
1223
?
// IE sometimes returns 1223 when it should be 204 (see #1450)
// IE sometimes returns 1223 when it should be 204 (see #1450)
204
status
==
1223
?
:
204
:
status
status
);
);
// Call complete
// Call complete
complete
(
status
,
statusText
,
responses
,
responseHeaders
);
complete
(
status
,
statusText
,
responses
,
responseHeaders
);
}
}
}
}
};
};
// if we're in sync mode
// if we're in sync mode
or it's in cache
//
or it's in cache
and has been retrieved directly (IE6 & IE7)
// and has been retrieved directly (IE6 & IE7)
// we need to manually fire the callback
// we need to manually fire the callback
if
(
!
s
.
async
||
xhr
.
readyState
===
4
)
{
if
(
!
s
.
async
||
xhr
.
readyState
===
4
)
{
callback
();
callback
();
}
else
{
}
else
{
// Add to list of active xhrs
// Add to list of active xhrs
handle
=
xhrId
++
;
handle
=
xhrId
++
;
xhrs
[
handle
]
=
xhr
;
xhrs
[
handle
]
=
xhr
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment