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. Howdy! I know this is sort of off-topic however I had to ask.
    Does managing a well-established website like yours take a
    massive amount work? I am brand new to operating a blog but I do write in my
    journal everyday. I’d like to start a blog so I can easily share my personal experience and thoughts
    online. Please let me know if you have any ideas or tips for new aspiring bloggers.
    Appreciate it!

  2. At Doho Digital, we empower small businesses with our comprehensive BizMate CRM
    platform. Our services include search engine optimization (SEO), email and SMS marketing, CRM solutions, AI-powered scheduling and advertising, webchat integration, reputation management, lead generation, sales pipeline
    management, automation workflows, landing page and funnel building, membership and course management, e-commerce
    solutions, social media management, facebook and google advertising, paid search, text-to-pay solutions,
    invoice generation, and comprehensive reporting. We offer unmatched
    support with 24/7 assistance, free migration, unlimited users, price lock guarantee, and 1:1 onboarding, ensuring
    your business growth and success.