I really, really like what you did here, Nathan. Behavior of $.ajax could
be: option[response.code] ? option[response.code](infos) : error(infos)
So basically, any response code that is not 200 is considered an error BUT
you can specify a specific error callback per type of response. Would that
be really difficult to implement?

2009/7/23 Nathan Bubna <nbu...@gmail.com>

>
> On Wed, Jul 22, 2009 at 4:42 PM, Justinvh<justi...@gmail.com> wrote:
> >
> > Heh, well...
> >
> > If we define a successful response as one defined by HTTP/1.1
> > standards, then any 2xx/3xx based response should be considered
> > successful. However, I can see that if you are interacting with a
> > layer such as $.ajax() that specified an expected dataType as a return
> > that it should reasonably error to some degree.
> >
> > It is definitely a tangential issue - And is most likely apparent to
> > any RESTful applications that would rely on status codes to manipulate
> > client-side interaction.
>
> agreed.
>
> > Perhaps, a solution would be to have the option of defining callbacks
> > per status code.
> >
> > E.g. $.ajax(..., {
> >     'onStatusCode':
> >       { '200': {
> >            'dataType': 'json',
> >            'success': function(data) { },
> >            'error': function(data) { }
> >          }
> >          '204': {
> >             'success': function () {
> >              }
> >          }
> >        }
> >    }
>
> i've got something like this in my rest plugin
> (http://plugins.jquery.com/project/rest).   it's still a young plugin,
> but it's already made using jQuery ajax with REST services much, much
> easier.  it would look something like this for a delete call:
>
> $.Delete('/groups/@me/foo', {
>  success: function(data) { //do stuff },
>  204: 'success' // or a function of its own
> });
>
> since you seem to be working in the same space, i'd love your feedback
> on the plugin, if you've got the time.
>
> > - Or something that degree that would allow a 'lower-level' of
> > interaction with how $.ajax() would handle responses.
> >
> > On Jul 22, 4:26 pm, John Resig <jere...@gmail.com> wrote:
> >> I guess that's a tangential issue, not really related to JSON - if a
> server
> >> returns a 204 (with no content) should we call success with a null or
> >> undefined data argument?
> >>
> >> At the moment I think that's far more likely that when you do a request,
> and
> >> you're expecting something (JSON, XML, etc.) and you don't get it (204
> or
> >> not), that it should not count as a success. I'd be willing to tweak the
> >> docs to represent that. Of course, I'm willing to be convinced
> otherwise.
> >>
> >> --John
> >>
> >> On Wed, Jul 22, 2009 at 7:10 PM, Justinvh <justi...@gmail.com> wrote:
> >>
> >> > There is a parsererror, but the way the error callback is described
> >> > seems misleading. What if on a 200 response you returned JSON - But a
> >> > 204, being that the response code is 'NO CONTENT', would not have JSON
> >> > in it. Should it still error?
> >>
> >> > Shouldn't the desired effect be to ignore the data inside, or is this
> >> > logic that should be handled as a case in dataFilter?
> >>
> >> > On Jul 22, 3:17 pm, John Resig <jere...@gmail.com> wrote:
> >> > > What's the error message that you are receiving? Reading through the
> code
> >> > > I'd imagine that you would receive a 'parsererror', which seems
> >> > appropriate.
> >>
> >> > > --John
> >>
> >> > > On Wed, Jul 22, 2009 at 3:30 PM, Justinvh <justi...@gmail.com>
> wrote:
> >>
> >> > > > Can someone explain me the reasoning that if a dataType is
> specified
> >> > > > as JSON and the response code is say a 204 (NO CONTENT), that it
> would
> >> > > > error. The way it looks, the code is expecting JSON back, but
> since
> >> > > > there is no JSON, it fails.
> >>
> >> > > > The documentation however says that error is "A function to be
> called
> >> > > > if the request fails." - Which makes me think that the actual
> request
> >> > > > fails, not that the data parsed failed.
> >>
> >> > > > Maybe it's me, but it seems a bit confusing.
> >>
> >>
> > >
> >
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to jquery-dev@googlegroups.com
To unsubscribe from this group, send email to 
jquery-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to