git.asbjorn.biz
/
jquery.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c55a76a
)
Fixes #5955. Option crossDomain now forces ajax to consider a request as cross-domain...
author
jaubourg
<j@ubourg.net>
Sun, 9 Jan 2011 15:50:13 +0000
(16:50 +0100)
committer
jaubourg
<j@ubourg.net>
Sun, 9 Jan 2011 15:50:13 +0000
(16:50 +0100)
src/ajax.js
patch
|
blob
|
history
test/unit/ajax.js
patch
|
blob
|
history
diff --git
a/src/ajax.js
b/src/ajax.js
index
e910aa5
..
eae20e4
100644
(file)
--- a/
src/ajax.js
+++ b/
src/ajax.js
@@
-520,12
+520,15
@@
jQuery.extend({
// Determine if a cross-domain request is in order
var parts = rurl.exec( s.url.toLowerCase() ),
loc = location;
// Determine if a cross-domain request is in order
var parts = rurl.exec( s.url.toLowerCase() ),
loc = location;
- s.crossDomain = !!(
- parts &&
- ( parts[ 1 ] && parts[ 1 ] != loc.protocol ||
- parts[ 2 ] != loc.hostname ||
- ( parts[ 3 ] || 80 ) != ( loc.port || 80 ) )
- );
+
+ if ( ! s.crossDomain ) {
+ s.crossDomain = !!(
+ parts &&
+ ( parts[ 1 ] && parts[ 1 ] != loc.protocol ||
+ parts[ 2 ] != loc.hostname ||
+ ( parts[ 3 ] || 80 ) != ( loc.port || 80 ) )
+ );
+ }
// Convert data if not already a string
if ( s.data && s.processData && typeof s.data != "string" ) {
// Convert data if not already a string
if ( s.data && s.processData && typeof s.data != "string" ) {
diff --git
a/test/unit/ajax.js
b/test/unit/ajax.js
index
4c8c500
..
8bfd4d3
100644
(file)
--- a/
test/unit/ajax.js
+++ b/
test/unit/ajax.js
@@
-383,14
+383,15
@@
test(".ajax() - hash", function() {
test("jQuery ajax - cross-domain detection", function() {
test("jQuery ajax - cross-domain detection", function() {
- expect( 3 );
+ expect( 4 );
var loc = document.location,
otherPort = loc.port === 666 ? 667 : 666,
otherProtocol = loc.protocol === "http:" ? "https:" : "http:",
protocolFlag,
hostFlag,
var loc = document.location,
otherPort = loc.port === 666 ? 667 : 666,
otherProtocol = loc.protocol === "http:" ? "https:" : "http:",
protocolFlag,
hostFlag,
- portFlag;
+ portFlag,
+ forcedFlag;
if ( jQuery.ajax({
url: otherProtocol + "//" + loc.host,
if ( jQuery.ajax({
url: otherProtocol + "//" + loc.host,
@@
-431,6
+432,20
@@
test("jQuery ajax - cross-domain detection", function() {
}
}
}
}
+ if ( jQuery.ajax({
+ url: loc.protocol + "//" + loc.host,
+ crossDomain: true,
+ beforeSend: function( _ , s ) {
+ forcedFlag = 1;
+ ok( s.crossDomain , "Test forced crossDomain is detected as cross-domain" );
+ return false;
+ }
+ }) === false ) {
+ if ( ! forcedFlag ) {
+ ok( ! jQuery.support.cors , "Test forced crossDomain is detected as cross-domain (no transport)" );
+ }
+ }
+
});
test(".ajax() - 304", function() {
});
test(".ajax() - 304", function() {