Bug Tracker

Opened 10 years ago

Closed 10 years ago

Last modified 9 years ago

#4378 closed bug (fixed)

IE6 Broken JSONP calls. Several tickets, > 1 year. Solution available.

Reported by: ricardoe Owned by: brandon
Priority: critical Milestone: 1.4
Component: ajax Version: 1.3.2
Keywords: JSONP, IE6 Cc:
Blocked by: Blocking:

Description

Hi,

I'm concerned about the problem with JSONP calls in IE6 that seems to be studied and even fixed from some jQuery users. This is a desperate call for jQuery developers to include the simple solutions into the next release of this great tool.

I understand and support the NO-MORE-IE6 ideal, but come on boys, we just can't say to our wide base of users what to do (I'd love them to drop ie6!).

Please check these: #3019, #3436, #3283, #3283, #3466, #2923

The problem: JSONP calls insert the script tag in the head tag, but if IE6 is on quirks or using base tag the code to remove the script will choke.

The solution: Some proposed fixes are to change from

head.removeChild(script);

to

script.parentNode.removeChild(script);

I don't really know what is the best approach, but I now that this bug is present in 1.3.2 and its been reported since 10 months ago or even more.

I really think this is not a very difficult problem to solve and to test.

But we are up to you. And remember WE ALL WANT IE6 gone for good.

Change History (12)

comment:1 Changed 10 years ago by brandon

Owner: set to brandon

comment:2 Changed 10 years ago by brandon

#3436 was caused by a bad server response... see this stackoverflow question for more details http://stackoverflow.com/questions/129157/jquery-jsonp-problem-in-ie6

comment:3 Changed 10 years ago by brandon

I've tried all kinds of variations of valid and invalid markup to reproduce this particular issue but it always works for me. I believe IE is being picky about the server response.

I can use the following (via the previously mentioned stackoverflow question) for dataType javascript and it work in IE quirks and standards mode.

$.getScript('http://jsbin.com/rs.php?callback=alert');

comment:4 Changed 10 years ago by ricardoe

Hi Brandon, Can you try using a <base> tag? Its weird because this is very important to a code I'm developing that currently is being used, well, very very widely. And this problem is being reported only on IE6 and with some pages using a <base>.

Thanks for looking at this, there must be something we can do in jQuery to avoid this IE6-issues.

comment:5 Changed 10 years ago by brandon

I have also tried using a base tag in quirks and standards and it still works for me. Could you provide some sample code that is failing for you?

Does removing the base tag resolve the issue for you?

comment:6 Changed 10 years ago by brandon

Also are you actually getting the javascript error you describe or is the callback just not firing?

comment:7 Changed 10 years ago by ricardoe

I got an error message, I have the MS script debugger installed and enable so I get that option, but even if I avoid that, the callback is just not fired and the script execution is ended.

comment:8 Changed 10 years ago by brandon

Could you provide the code (preferably in a stripped down form) so that I can test with it?

comment:9 Changed 10 years ago by ricardoe

Brandon sorry for the delay. Check this: http://pastebin.com/f17fcac13

One thing I just discovery is that changing the <base> tag to be explicitly closed with </base> will not trigger the error alert in IE6.

comment:10 Changed 10 years ago by brandon

Resolution: fixed
Status: newclosed

This is now fixed in r6301

comment:11 Changed 10 years ago by ricardoe

thanks Brandon.

comment:12 Changed 9 years ago by addyosmani

#4478 is a duplicate of this ticket.

Note: See TracTickets for help on using tickets.