Skip to main content

Bug Tracker

Side navigation

#2363 closed bug (worksforme)

Opened February 19, 2008 05:11AM UTC

Closed February 20, 2008 03:38PM UTC

Last modified March 15, 2012 02:06AM UTC

$.getJSON() - JSONP callback never gets called

Reported by: iandeth Owned by:
Priority: major Milestone: 1.2.3
Component: core Version: 1.2.3
Keywords: jsonp Cc:
Blocked by: Blocking:
Description

with v1.2.3 + Mozilla Firefox 2.0.0.12,

this style of crossdomain $.getJSON() doesn't work,

since the callback function never gets called:

$.getJSON( 'http://jquery.com/api/', { callback: '?' }, function (){} );

although this style works fine:

$.getJSON( 'http://jquery.com/api/?callback=?', function (){} );

Here's a demo page:

http://iandeth.dyndns.org/mt/ian/archives/jquery-1.2.3-JSONP-bug/

the problem in the source code is with the regexp at line 2559:

jsre = /=\\?(&|$)/g

and line 2567:

s.data = jQuery.param(s.data);

and line 2580:

s.data.match(jsre)

where s.data ends up with some url encoded string like 'callback=%3F', which doesn't match the jsre regexp.

the old version (v1.2.1) of jsre variable used to have

the regexp with url encoded string:

jsre = /=(\\?|%3F)/g

so these places should be the placed to be fixed.

here's my version of a bug patch code:

http://iandeth.dyndns.org/mt/ian/archives/jquery-1.2.3-JSONP-bug/patch.txt

best,

toshi

Attachments (0)
Change History (3)

Changed February 19, 2008 06:25AM UTC by davidserduke comment:1

That pattern is no longer supported by jQuery.

Look for John's comments in #2020.

Changed February 19, 2008 04:05PM UTC by iandeth comment:2

thanks for the notice :)

i understood the situation very well.

Changed February 20, 2008 03:38PM UTC by john comment:3

resolution: → worksforme
status: newclosed