Skip to content

Commit

Permalink
Merge pull request #223 from greylurk/ie-headers
Browse files Browse the repository at this point in the history
Implements Accept headers from IE in the case describe in Issue 215
  • Loading branch information
tomchristie committed Jul 3, 2012
2 parents 11147ce + 73be041 commit 1753231
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
3 changes: 2 additions & 1 deletion djangorestframework/mixins.py
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,8 @@ def _determine_renderer(self, request):
accept_list = [request.GET.get(self._ACCEPT_QUERY_PARAM)]
elif (self._IGNORE_IE_ACCEPT_HEADER and
'HTTP_USER_AGENT' in request.META and
MSIE_USER_AGENT_REGEX.match(request.META['HTTP_USER_AGENT'])):
MSIE_USER_AGENT_REGEX.match(request.META['HTTP_USER_AGENT']) and
request.META.get('HTTP_X_REQUESTED_WITH', '') != 'XMLHttpRequest'):
# Ignore MSIE's broken accept behavior and do something sensible instead
accept_list = ['text/html', '*/*']
elif 'HTTP_ACCEPT' in request.META:
Expand Down
10 changes: 10 additions & 0 deletions djangorestframework/tests/accept.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,16 @@ def test_munge_msie_accept_header(self):
resp = self.view(req)
self.assertEqual(resp['Content-Type'], 'text/html')

def test_dont_munge_msie_with_x_requested_with_header(self):
"""Send MSIE user agent strings, and an X-Requested-With header, and
ensure that we get a JSON response if we set a */* Accept header."""
for user_agent in (MSIE_9_USER_AGENT,
MSIE_8_USER_AGENT,
MSIE_7_USER_AGENT):
req = self.req.get('/', HTTP_ACCEPT='*/*', HTTP_USER_AGENT=user_agent, HTTP_X_REQUESTED_WITH='XMLHttpRequest')
resp = self.view(req)
self.assertEqual(resp['Content-Type'], 'application/json')

def test_dont_rewrite_msie_accept_header(self):
"""Turn off _IGNORE_IE_ACCEPT_HEADER, send MSIE user agent strings and ensure
that we get a JSON response if we set a */* accept header."""
Expand Down

0 comments on commit 1753231

Please sign in to comment.