Side navigation
#13922 closed bug (fixed)
Opened May 22, 2013 08:02PM UTC
Closed May 23, 2013 12:35AM UTC
Last modified May 24, 2013 03:27AM UTC
HEAD responses with application/json results parseerror
| Reported by: | julio.melo+jquery@gmail.com | Owned by: | jaubourg | 
|---|---|---|---|
| Priority: | blocker | Milestone: | 1.10 | 
| Component: | ajax | Version: | 1.9.1 | 
| Keywords: | Cc: | jaubourg | |
| Blocked by: | Blocking: | 
Description
Using ajax to fetch an URL using request type HEAD leads to parseerror when content-type is application/json on response. Using GET, it worked as expected.
According to RF2616, section 10.2.1 "HEAD the entity-header fields corresponding to the requested resource are sent in the response without any message-body". When the type of request is HEAD, jQuery should accept empty response, even when content-type is defined as application/json.
This fails
$.ajax({
url : "http:ip.jsontest.com/",
type : "HEAD",
success : function() { console.log("HEAD OK!"); },
error : function() { console.error("HEAD Failed!"); }
});
This is ok
$.ajax({
url : "http:ip.jsontest.com/",
type : "GET",
success : function() { console.log("GET OK!"); },
error : function() { console.error("GET Failed!"); }
});
Attachments (0)
Change History (5)
Changed May 22, 2013 08:49PM UTC by comment:1
| cc: | → jaubourg | 
|---|
Changed May 22, 2013 11:22PM UTC by comment:2
| _comment0: | Well, it's tempting to special case HEAD requests here but isn't the fact the server delivers a response to a HEAD request with an actual content-type the real issue here ? If there is not content, why is the server providing a content-type ? → 1369265108327835 | 
|---|
(Well, it's tempting to special case HEAD requests here but isn't the fact the server delivers a response to a HEAD request with an actual content-type the real issue here ? If there is not content, why is the server providing a content-type ?)
Scrap that, this IS a bug. The HEAD request is supposed to have the same headers as the GET request. It's getting late here ;)
Changed May 22, 2013 11:25PM UTC by comment:3
| component: | unfiled → ajax | 
|---|---|
| owner: | → jaubourg | 
| priority: | undecided → blocker | 
| status: | new → assigned | 
Changed May 23, 2013 12:35AM UTC by comment:4
| resolution: | → fixed | 
|---|---|
| status: | assigned → closed | 
Handles HEAD requests as if they always were 204. Fixes #13922.
Changeset: a2cd89a795067d67d8212a4571991e5d2fb0ea8f
Changed May 24, 2013 03:27AM UTC by comment:5
| milestone: | None → 1.10 | 
|---|
It does seem like we shouldn't be parsing content on HEAD requests since no data is ever expected. This is a bit different than #13450 where the browser sets a content-type but has a content-length of 0 for a request that should return data.