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. Having someone trustworthy assist during an important transitional phase makes such an impact; everyone should consider reaching out before making big decisions regarding relocation—especially if it’s somewhere as beautiful as Oakland Hills! Local movers Oak Hill

  2. That is really attention-grabbing, You are an excessively skilled blogger.
    I’ve joined your rss feed and look ahead to looking for extra of your great post.
    Additionally, I’ve shared your website in my
    social networks

  3. We are a group of volunteers and starting a new scheme in our community.
    Your web site offered us with valuable info to work on. You have
    done an impressive job and our whole community
    will be grateful to you.

  4. Link exchange is nothing else but it is simply placing the other person’s weblog link on your page at suitable place and
    other person will also do similar for you.