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. Appreciating the hard work you put into your website and detailed
    information you provide. It’s great to come
    across a blog every once in a while that isn’t the same unwanted rehashed information. Excellent read!
    I’ve bookmarked your site and I’m including your RSS feeds to
    my Google account.

  2. Are you tired of endless diets and exercise routines with no results? CoolSculpting in Amarillo offered by CoolSculpting might be the solution you’ve been searching for.

  3. Trusting BlckPanda Creative Dallas was a game changer for me; they took my website from obscurity to a top-ranking spot on Google’s search results—learn more about their process at seo !

  4. I enjoy what you guys tend to be up too. Such clever work and reporting!

    Keep up the very good works guys I’ve incorporated you guys to our blogroll.