MooTools Depender, Safari, etags and 412 Precondition Failed

/**
* This replaces the default MooTools more Depender.request function to use
* HTTP "get" rather than "post".
*
* When sending requests for files via the depender, I was finding that Safari
* wasn't getting and re-evaluating them the second time I visited the page.
* This was because an etag was sent with each script.
*
* Safari responds to etags properly and adds "If-None-Match" and
* "If-Modified-Since" headers to another request for the same file. This makes
* Apache respond with a 412 status (Precondition Failed) as it should do for
* "post" requests (according to RFC 2616).
*
* Unfortunately Safari doesn't then deal with the 412 as it does with a 304
* (Not Modified). It doesn't grab what it has in the cache and put it in the
* response, it gives you nothing.
*
* For "get" requests, Apache has to respond with a 304, or 200 or whatever, but
* not 412. So we change the request method so we don't have to deal with 412.
*/
Depender.request = function(url, callback){
    new Request.JSON({
        url: url,
        secure: false,
        onSuccess: callback,
        method:'get'
    }).send();
};

24,935 thoughts on “MooTools Depender, Safari, etags and 412 Precondition Failed

  1. I’ve been exploring for a little for any high quality articles or weblog posts on this kind of house .
    Exploring in Yahoo I at last stumbled upon this site.
    Reading this information So i’m glad to show that I’ve an incredibly excellent
    uncanny feeling I came upon exactly what I needed.
    I so much surely will make sure to don?t omit this website and
    give it a look regularly.

  2. I don’t know if it’s just me or if perhaps everyone else experiencing issues with your blog.

    It seems like some of the text on your content are running off the screen.
    Can someone else please provide feedback and let me know if this is happening to them
    too? This could be a issue with my internet browser because
    I’ve had this happen previously. Thank you