Fixed #1750 by adding a url that starts with "//" and is a dataType "script" will...
authorDavid Serduke <davidserduke@gmail.com>
Wed, 12 Dec 2007 20:54:44 +0000 (20:54 +0000)
committerDavid Serduke <davidserduke@gmail.com>
Wed, 12 Dec 2007 20:54:44 +0000 (20:54 +0000)
src/ajax.js
test/unit/ajax.js

index bf0cf10..35995f6 100644 (file)
@@ -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;
index 40ec964..35f87a8 100644 (file)
@@ -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();