Side navigation
#8719 closed bug (worksforme)
Opened March 31, 2011 01:43AM UTC
Closed April 01, 2011 02:52AM UTC
getJSON fails too early on 407 header
| Reported by: | jsguy | Owned by: | jsguy |
|---|---|---|---|
| Priority: | undecided | Milestone: | 1.next |
| Component: | ajax | Version: | 1.5.1 |
| Keywords: | Cc: | ||
| Blocked by: | Blocking: |
Description
Environment
OS: Mac OSX 10.6.6
Browser: FF 3.1.16
Add-ons used in testing: Firebug 1.6.2, HTTPFox 0.8.8
Problem
When using $.getJSON, in a proxied environment, you may get a 407 error, which means the proxy needs to be re-authenticated; when using $.ajax, this works fine (ie: there is no error called, and the 407 turns into a 200 after 1 second or so).
To replicate this, you will need a proxy server that can be setup to authenticate, unfortunately I don't have one to show you the error, so instead here is an example, and what I see in the firefox httpfox plugin and firebug:
getJSON - fails
var successFunc = function(r){ console.log("ok:", r); };
$.getJSON( urlThat407s, successFunc ).error( function( result ) {
console.log( "err: ", result.status );
});
Firebug result:
err: 0
Result: 407
Type: text/html (NS_ERROR_DOM_BAD_URI)
ajax - this is ok, I'm using it as a temporary workaround
var successFunc = function(r){ console.log("ok:", r); };
$.ajax( {
url: urlThat407s,
dataType: "jsonp",
cache: true,
timeout: 30000,
success: successFunc,
error: function( result ) {
console.log( "err: ", result.status );
}
} );
Firebug result:
ok: value from JSONP server
Result: 200
Type: text/html
Note: HttpFox briefly flashes the 407 error, before turning into a 200
What I was expecting
Ideally $.getJSON would be able to handle the 407 just like $.ajax does, however if it has to fail, (ie: you cannot make it work like $.ajax), then at least the status should be set to 407, rather than 0
Attachments (0)
Change History (3)
Changed March 31, 2011 03:52AM UTC by comment:1
| component: | unfiled → ajax |
|---|---|
| owner: | → jsguy |
| status: | new → pending |
Changed April 01, 2011 01:53AM UTC by comment:2
| status: | pending → new |
|---|
Yes, it has callback=?, for the $.getJSON url, however it may be a problem with the proxy itself - I have since tested on a different proxy, and could not replicate the issue.
Can you please close this ticket, and once I find out what the problem is, I'll raise another.
Changed April 01, 2011 02:52AM UTC by comment:3
| resolution: | → worksforme |
|---|---|
| status: | new → closed |
There are two different things being attempted here - first to get json via $.getJSON (which will use XHR) and second to get JSONP via $.ajax (which does not use XHR). If the intent is to make a JSONP request, are you appending a the
callback=?to the end of your $.getJSON url?