Workaround Firefox bug 553888

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
class FixFirefoxMissingAJAXRedirectHeadersMiddleware(object):
    key = 'FixFirefoxMissingAJAXRedirectHeadersMiddleware'
    
    def process_request(self, request):
        if not request.is_ajax() and request.path == request.session.get(self.key, None):
            setattr(request, 'is_ajax', lambda: True)
            
    def process_response(self, request, response):
        if request.is_ajax() and 300 <= response.status_code < 400:
            request.session[self.key] = response['Location']
        else:
            if self.key in request.session:
                del request.session[self.key]
        return response

More like this

  1. AjaxCheckMiddleware by kylefox 5 years, 3 months ago
  2. Must complete at least one form in formset_factory() by martino 2 years, 10 months ago
  3. JSON decorator for views handling ajax requests by anilshanbhag 5 months ago
  4. Cookieless Session Decorator by achimnol 3 years, 9 months ago
  5. Effective content caching for mass-load site using redirect feature by nnseva 1 year, 10 months ago

Comments

(Forgotten your password?)