Fix #1987 by only doing remote <script> type ajax with GET requests. All other types will be passed on to XMLHttpRequest.

This commit is contained in:
David Serduke 2007-12-11 20:16:19 +00:00
parent 227f8b2514
commit c6a44c7943
2 changed files with 21 additions and 2 deletions

View file

@ -218,8 +218,8 @@ jQuery.extend({
jQuery.event.trigger( "ajaxStart" );
// If we're requesting a remote document
// and trying to load JSON or Script
if ( !s.url.indexOf("http") && ( s.dataType == "script" || s.dataType =="json" ) ) {
// 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" ) {
var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = s.url;

View file

@ -573,6 +573,25 @@ test("$.ajax() - script, Remote", function() {
});
});
test("$.ajax() - script, Remote with POST", function() {
expect(3);
var base = window.location.href.replace(/\?.*$/, "");
stop();
$.ajax({
url: base + "data/test.js",
type: "POST",
dataType: "script",
success: function(data, status){
ok( foobar, "Script results returned (GET, no callback)" );
equals( status, "success", "Script results returned (GET, no callback)" );
start();
}
});
});
test("$.getJSON(String, Hash, Function) - JSON array", function() {
expect(4);
stop();