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({
// Detect, normalize options and install callbacks for jsonp requests
// (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"
||
originalSettings
.
jsonpCallback
||
...
...
@@ -47,23 +47,25 @@ jQuery.ajaxPrefilter("json jsonp", function(s, originalSettings, dataIsString) {
s
.
url
=
url
;
s
.
data
=
data
;
window
[
jsonpCallback
]
=
function
(
response
)
{
responseContainer
=
[
response
];
window
[
jsonpCallback
]
=
function
(
response
)
{
responseContainer
=
[
response
];
};
s
.
complete
=
[
function
()
{
s
.
complete
=
[
function
()
{
// Set callback back to previous value
window
[
jsonpCallback
]
=
previous
;
// Call if it was a function and we have a response
if
(
previous
)
{
if
(
responseContainer
&&
jQuery
.
isFunction
(
previous
)
)
{
window
[
jsonpCallback
]
(
responseContainer
[
0
]
);
if
(
responseContainer
&&
jQuery
.
isFunction
(
previous
)
)
{
window
[
jsonpCallback
]
(
responseContainer
[
0
]
);
}
}
else
{
// else, more memory leak avoidance
try
{
delete
window
[
jsonpCallback
];
}
catch
(
e
){}
try
{
delete
window
[
jsonpCallback
];
}
catch
(
e
)
{}
}
},
s
.
complete
];
...
...
@@ -82,6 +84,6 @@ jQuery.ajaxPrefilter("json jsonp", function(s, originalSettings, dataIsString) {
// Delegate to script
return
"script"
;
}
});
}
);
})(
jQuery
);
src/ajax/script.js
View file @
dd5bf421
...
...
@@ -2,47 +2,42 @@
// Install script dataType
jQuery
.
ajaxSetup
({
accepts
:
{
script
:
"text/javascript, application/javascript"
},
contents
:
{
script
:
/javascript/
},
converters
:
{
"text script"
:
jQuery
.
globalEval
}
});
// Handle cache's special case and global
jQuery
.
ajaxPrefilter
(
"script"
,
function
(
s
)
{
jQuery
.
ajaxPrefilter
(
"script"
,
function
(
s
)
{
if
(
s
.
cache
===
undefined
)
{
s
.
cache
=
false
;
}
if
(
s
.
crossDomain
)
{
s
.
type
=
"GET"
;
s
.
global
=
false
;
}
});
}
);
// Bind script tag hack transport
jQuery
.
ajaxTransport
(
"script"
,
function
(
s
)
{
jQuery
.
ajaxTransport
(
"script"
,
function
(
s
)
{
// This transport only deals with cross domain requests
if
(
s
.
crossDomain
)
{
var
script
,
head
=
document
.
getElementsByTagName
(
"head"
)[
0
]
||
document
.
documentElement
;
head
=
document
.
getElementsByTagName
(
"head"
)[
0
]
||
document
.
documentElement
;
return
{
send
:
function
(
_
,
callback
)
{
send
:
function
(
_
,
callback
)
{
script
=
document
.
createElement
(
"script"
);
script
=
document
.
createElement
(
"script"
);
script
.
async
=
"async"
;
...
...
@@ -53,9 +48,9 @@ jQuery.ajaxTransport("script", function(s) {
script
.
src
=
s
.
url
;
// 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
script
.
onload
=
script
.
onreadystatechange
=
null
;
...
...
@@ -66,10 +61,10 @@ jQuery.ajaxTransport("script", function(s) {
}
// Dereference the script
script
=
0
;
script
=
undefined
;
// Callback if not abort
if
(
!
isAbort
)
{
if
(
!
isAbort
)
{
callback
(
200
,
"success"
);
}
}
...
...
@@ -81,11 +76,11 @@ jQuery.ajaxTransport("script", function(s) {
abort
:
function
()
{
if
(
script
)
{
script
.
onload
(
0
,
1
);
script
.
onload
(
0
,
1
);
}
}
};
}
});
}
);
})(
jQuery
);
src/ajax/xhr.js
View file @
dd5bf421
...
...
@@ -46,39 +46,38 @@ try {
jQuery
.
support
.
ajax
=
!!
testXHR
;
// 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
testXHR
=
undefined
;
// Create transport if the browser can provide an xhr
if
(
jQuery
.
support
.
ajax
)
{
jQuery
.
ajaxTransport
(
function
(
s
)
{
jQuery
.
ajaxTransport
(
function
(
s
)
{
// Cross domain only allowed if supported through XMLHttpRequest
if
(
!
s
.
crossDomain
||
jQuery
.
support
.
cors
)
{
if
(
!
s
.
crossDomain
||
jQuery
.
support
.
cors
)
{
var
callback
;
return
{
send
:
function
(
headers
,
complete
)
{
send
:
function
(
headers
,
complete
)
{
// #5280: we need to abort on unload or IE will keep connections alive
if
(
!
xhrUnloadAbortInstalled
)
{
if
(
!
xhrUnloadAbortInstalled
)
{
xhrUnloadAbortInstalled
=
1
;
jQuery
(
window
).
bind
(
"unload"
,
function
()
{
jQuery
(
window
).
bind
(
"unload"
,
function
()
{
// Abort all pending requests
jQuery
.
each
(
xhrs
,
function
(
_
,
xhr
)
{
jQuery
.
each
(
xhrs
,
function
(
_
,
xhr
)
{
if
(
xhr
.
onreadystatechange
)
{
xhr
.
onreadystatechange
(
1
);
}
});
}
);
});
}
);
}
// Get a new xhr
...
...
@@ -88,38 +87,36 @@ if ( jQuery.support.ajax ) {
// Open the socket
// Passing null username, generates a login popup on Opera (#2865)
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
{
xhr
.
open
(
s
.
type
,
s
.
url
,
s
.
async
);
xhr
.
open
(
s
.
type
,
s
.
url
,
s
.
async
);
}
// Requested-With header
// Not set for crossDomain requests with no content
// (see why at http://trac.dojotoolkit.org/ticket/9486)
// Won't change header if already provided
if
(
!
(
s
.
crossDomain
&&
!
s
.
hasContent
)
&&
!
headers
[
"x-requested-with"
]
)
{
headers
[
"x-requested-with"
]
=
"XMLHttpRequest"
;
if
(
!
(
s
.
crossDomain
&&
!
s
.
hasContent
)
&&
!
headers
[
"x-requested-with"
]
)
{
headers
[
"x-requested-with"
]
=
"XMLHttpRequest"
;
}
// Need an extra try/catch for cross domain requests in Firefox 3
try
{
jQuery
.
each
(
headers
,
function
(
key
,
value
)
{
xhr
.
setRequestHeader
(
key
,
value
);
});
}
catch
(
_
)
{}
jQuery
.
each
(
headers
,
function
(
key
,
value
)
{
xhr
.
setRequestHeader
(
key
,
value
);
}
);
}
catch
(
_
)
{}
// Do send the request
try
{
xhr
.
send
(
(
s
.
hasContent
&&
s
.
data
)
||
null
);
}
catch
(
e
)
{
complete
(
0
,
"error"
,
""
+
e
);
}
catch
(
e
)
{
complete
(
0
,
"error"
,
""
+
e
);
return
;
}
// Listener
callback
=
function
(
_
,
isAbort
)
{
callback
=
function
(
_
,
isAbort
)
{
// Was never called and is aborted or complete
if
(
callback
&&
(
isAbort
||
xhr
.
readyState
===
4
)
)
{
...
...
@@ -128,20 +125,18 @@ if ( jQuery.support.ajax ) {
callback
=
0
;
// Do not keep as active anymore
if
(
handle
)
{
if
(
handle
)
{
xhr
.
onreadystatechange
=
jQuery
.
noop
;
delete
xhrs
[
handle
];
}
// If it's an abort
if
(
isAbort
)
{
// Abort it manually if needed
if
(
xhr
.
readyState
!==
4
)
{
xhr
.
abort
();
}
}
else
{
// Get info
var
status
=
xhr
.
status
,
statusText
,
...
...
@@ -155,56 +150,51 @@ if ( jQuery.support.ajax ) {
}
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
;
}
catch
(
e
)
{
statusText
=
""
;
// We normalize with Webkit giving an empty statusText
// We normalize with Webkit giving an empty statusText
statusText
=
""
;
}
// Filter status for non standard behaviours
// (so many they seem to be the actual "standard")
status
=
// Opera returns 0 when it should be 304
// Webkit returns 0 for failing cross-domain no matter the real status
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
304
:
// Opera: filter out real aborts #6060
responseHeaders
?
304
:
0
)
:
302
// We assume 302 but could be anything cross-domain related
)
:
)
:
// We assume 302 but could be anything cross-domain related
302
)
:
(
status
==
1223
?
// IE sometimes returns 1223 when it should be 204 (see #1450)
204
:
// IE sometimes returns 1223 when it should be 204 (see #1450)
status
==
1223
?
204
:
status
);
// Call complete
complete
(
status
,
statusText
,
responses
,
responseHeaders
);
complete
(
status
,
statusText
,
responses
,
responseHeaders
);
}
}
};
// if we're in sync mode
//
or it's in cache
and has been retrieved directly (IE6 & IE7)
// if we're in sync mode
or it's in cache
// and has been retrieved directly (IE6 & IE7)
// we need to manually fire the callback
if
(
!
s
.
async
||
xhr
.
readyState
===
4
)
{
if
(
!
s
.
async
||
xhr
.
readyState
===
4
)
{
callback
();
}
else
{
// Add to list of active xhrs
handle
=
xhrId
++
;
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