jquery ajax: Fixes #3045. The protocol wasn't being checked to see if a script is required for cross domain requests.

This commit is contained in:
Ariel Flesler 2008-06-17 20:32:15 +00:00
parent febe463cc2
commit 335b8816c2

View file

@ -236,12 +236,13 @@ jQuery.extend({
jQuery.event.trigger( "ajaxStart" ); jQuery.event.trigger( "ajaxStart" );
// Matches an absolute URL, and saves the domain // Matches an absolute URL, and saves the domain
var remote = /^(?:\w+:)?\/\/([^\/?#]+)/; var parts = /^(\w+:)?\/\/([^\/?#]+)/.exec( s.url );
// If we're requesting a remote document // If we're requesting a remote document
// and trying to load JSON or Script with a GET // and trying to load JSON or Script with a GET
if ( s.dataType == "script" && type == "GET" if ( s.dataType == "script" && type == "GET" && parts
&& remote.test(s.url) && remote.exec(s.url)[1] != location.host ){ && ( parts[1] && parts[1] != location.protocol || parts[2] != location.host )){
var head = document.getElementsByTagName("head")[0]; var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script"); var script = document.createElement("script");
script.src = s.url; script.src = s.url;