Bug Tracker

Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#6075 closed bug (worksforme)

Bug in JSON response interpretation in ie6.

Reported by: dchaplinsky Owned by:
Priority: Milestone: 1.4.2
Component: ajax Version: 1.4.1
Keywords: ajax, ie6, json, dataType Cc:
Blocked by: Blocking:

Description

Just found very strange bug which appeared, when we tried to migrated our site mydeco.com to jQuery 1.4.1.

One of ajax queries started to raising abnormal javascript error in ie6:

Line: *72713225* Char: 9 Error: Expected ',' Code: 0

Where line is always has some inanely high random value

After some investigation I realized, that this is because ajax query was called without specifying exact dataType (json in my case) and IE6 raising error in globalEval procedure when executing

head.insertBefore( script, head.firstChild );

jQuery 1.3.2 playing good here. Also, specifying dataType: "json" fixing the problem.

Here is the ajax request/response headers:

http://mydeco/account/profile/slideshow/add/ajax/

POST /account/profile/slideshow/add/ajax/ HTTP/1.1 Host: mydeco User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 Accept: */* Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive Content-Type: application/x-www-form-urlencoded; charset=UTF-8 X-Requested-With: XMLHttpRequest Referer: http://mydeco/people/creator/edit-profile/ Content-Length: 34 Pragma: no-cache Cache-Control: no-cache content_type=room&object_id=595498

HTTP/1.1 200 OK Date: Thu, 11 Feb 2010 20:13:53 GMT Server: WSGIServer/0.1 Python/2.5.4 X-Debug-JSON: queries: 3, time: 0.001=(0.0002+0.0011+0.0002) Vary: X-HTTP-Force-Status-200 X-Debug-Time: 4.058 ~= (0.002 + 4.054 + 0.002); I/O: 1.777; django: 2.280; delta=0.000; P3P: CP="CAO PSA OUR" Content-Type: application/x-javascript X-Debug-SQL: queries: 9, time: 1.776=(0.1650+0.3100+0.1570+0.1570+0.1600+0.1680+0.1600+0.1670+0.3320) Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Transfer-Encoding: chunked

Contact me, if you need any details or live demo.

Change History (2)

comment:1 Changed 10 years ago by john

Resolution: worksforme
Status: newclosed

That's correct - depending on the headers of your script it's likely that it's being interpreted as plain JavaScript. You can either fix the headers on your server-side script or just specify dataType: "json" (as you noted).

comment:2 Changed 10 years ago by dchaplinsky

Hm, ok, but two things are worrying me:

  1. Why it was ok in 1.3.2?
  2. Can you enclose the statement with try/catch and maybe show appropriate message?

Because it's quite unclear to understand why it's producing strange errors on empty place.

Note: See TracTickets for help on using tickets.