This commit is contained in:
John Resig 2010-10-25 13:05:11 -07:00
commit ee845c4975
4 changed files with 44 additions and 0 deletions

View file

@ -208,6 +208,12 @@ jQuery.extend({
s.data = jQuery.param( s.data, s.traditional ); s.data = jQuery.param( s.data, s.traditional );
} }
// If the jsonpCallback has been set, we can assume that dataType is jsonp
// Ticket #5803
if ( s.jsonpCallback ) {
s.dataType = "jsonp";
}
// Handle JSONP Parameter Callbacks // Handle JSONP Parameter Callbacks
if ( s.dataType === "jsonp" ) { if ( s.dataType === "jsonp" ) {
if ( type === "GET" ) { if ( type === "GET" ) {

View file

@ -32,6 +32,9 @@ jQuery.event = {
if ( handler === false ) { if ( handler === false ) {
handler = returnFalse; handler = returnFalse;
} else if ( !handler ) {
// Fixes bug #7229. Fix recommended by jdalton
return;
} }
var handleObjIn, handleObj; var handleObjIn, handleObj;

View file

@ -799,6 +799,21 @@ test("jQuery.ajax() - JSONP, Local", function() {
plus(); plus();
} }
}); });
// Supports Ticket #5803
jQuery.ajax({
url: "data/jsonp.php",
jsonpCallback: "jsonpResults",
success: function(data){
ok( data.data, "JSON results returned without dataType:jsonp when jsonpCallback is defined" );
plus();
},
error: function(data){
ok( false, "Ajax error JSON (GET, custom callback name)" );
plus();
}
});
}); });
test("JSONP - Custom JSONP Callback", function() { test("JSONP - Custom JSONP Callback", function() {

View file

@ -1,5 +1,25 @@
module("event"); module("event");
test("null or undefined handler", function() {
expect(2);
// Supports Fixes bug #7229
try {
jQuery("#firstp").click(null);
ok(true, "Passing a null handler will not throw an exception");
} catch (e) {}
try {
jQuery("#firstp").click(undefined);
ok(true, "Passing an undefined handler will not throw an exception");
} catch (e) {}
});
test("bind(), with data", function() { test("bind(), with data", function() {
expect(3); expect(3);
var handler = function(event) { var handler = function(event) {