Ticket #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: | |
| Blocking: | Blocked by: |
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
comment:2 Changed 4 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 4 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 4 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 4 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 4 years ago by brandon
Also are you actually getting the javascript error you describe or is the callback just not firing?
comment:7 Changed 4 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 4 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 4 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 4 years ago by brandon
- Status changed from new to closed
- Resolution set to fixed
This is now fixed in r6301
comment:11 Changed 4 years ago by ricardoe
thanks Brandon.
comment:12 Changed 3 years ago by addyosmani
#4478 is a duplicate of this ticket.
Please follow the bug reporting guidlines and use jsFiddle when providing test cases and demonstrations instead of pasting the code in the ticket.
