From e1af5faf80ff9a457bcb78757c3eb04b55e931d1 Mon Sep 17 00:00:00 2001
From: David Serduke <davidserduke@gmail.com>
Date: Wed, 12 Dec 2007 20:54:44 +0000
Subject: [PATCH] Fixed #1750 by adding a url that starts with "//" and is a
 dataType "script" will now use a cross domain load the same
 as urls that start with "http".

---
 src/ajax.js       |    2 +-
 test/unit/ajax.js |   22 ++++++++++++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/src/ajax.js b/src/ajax.js
index bf0cf10..35995f6 100644
--- a/src/ajax.js
+++ b/src/ajax.js
@@ -219,7 +219,7 @@ jQuery.extend({
 
 		// If we're requesting a remote document
 		// and trying to load JSON or Script with a GET
-		if ( !s.url.indexOf("http") && ( s.dataType == "script" || s.dataType =="json" ) && s.type.toLowerCase() == "get" ) {
+		if ( (!s.url.indexOf("http") || !s.url.indexOf("//")) && ( s.dataType == "script" || s.dataType =="json" ) && s.type.toLowerCase() == "get" ) {
 			var head = document.getElementsByTagName("head")[0];
 			var script = document.createElement("script");
 			script.src = s.url;
diff --git a/test/unit/ajax.js b/test/unit/ajax.js
index 40ec964..35f87a8 100644
--- a/test/unit/ajax.js
+++ b/test/unit/ajax.js
@@ -372,6 +372,7 @@ test("$.get(String, Hash, Function) - parse xml and use text() on nodes", functi
 test("$.getScript(String, Function) - with callback", function() {
 	expect(2);
 	stop();
+	window.foobar = null;
 	$.getScript(url("data/test.js"), function() {
 		equals( foobar, "bar", 'Check if script was evaluated' );
 		setTimeout(start, 100);
@@ -563,6 +564,7 @@ test("$.ajax() - script, Remote", function() {
 
 	stop();
 
+	window.foobar = null;
 	$.ajax({
 		url: base + "data/test.js",
 		dataType: "script",
@@ -580,6 +582,7 @@ test("$.ajax() - script, Remote with POST", function() {
 
 	stop();
 
+	window.foobar = null;
 	$.ajax({
 		url: base + "data/test.js",
 		type: "POST",
@@ -592,6 +595,25 @@ test("$.ajax() - script, Remote with POST", function() {
 	});
 });
 
+test("$.ajax() - script, Remote with scheme-less URL", function() {
+	expect(2);
+
+	var base = window.location.href.replace(/\?.*$/, "");
+	base = base.replace(/^.*?\/\//, "//");
+
+	stop();
+
+	window.foobar = null;
+	$.ajax({
+		url: base + "data/test.js",
+		dataType: "script",
+		success: function(data){
+			ok( foobar, "Script results returned (GET, no callback)" );
+			start();
+		}
+	});
+});
+
 test("$.getJSON(String, Hash, Function) - JSON array", function() {
 	expect(4);
 	stop();
-- 
1.7.10.4