From 3b50eaca2cd0b1439235e39c4e98a6438e8f55b2 Mon Sep 17 00:00:00 2001 From: rwldrn Date: Sun, 24 Oct 2010 12:18:33 -0400 Subject: [PATCH] Fixes #7229 and #5803 --- src/ajax.js | 6 ++++++ src/event.js | 3 +++ test/unit/ajax.js | 15 +++++++++++++++ test/unit/event.js | 20 ++++++++++++++++++++ 4 files changed, 44 insertions(+) diff --git a/src/ajax.js b/src/ajax.js index a40e223..915bbaa 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -208,6 +208,12 @@ jQuery.extend({ 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 if ( s.dataType === "jsonp" ) { if ( type === "GET" ) { diff --git a/src/event.js b/src/event.js index fb5a3ef..d491ae8 100644 --- a/src/event.js +++ b/src/event.js @@ -32,6 +32,9 @@ jQuery.event = { if ( handler === false ) { handler = returnFalse; + } else if ( !handler ) { + // Fixes bug #7229. Fix recommended by jdalton + return; } var handleObjIn, handleObj; diff --git a/test/unit/ajax.js b/test/unit/ajax.js index 5704d73..14c6218 100644 --- a/test/unit/ajax.js +++ b/test/unit/ajax.js @@ -799,6 +799,21 @@ test("jQuery.ajax() - JSONP, Local", function() { 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() { diff --git a/test/unit/event.js b/test/unit/event.js index f3d3148..5efa0ec 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -1,5 +1,25 @@ 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() { expect(3); var handler = function(event) { -- 1.7.10.4