From ff099f9db8fc88966904035d37b1431af4ad35fd Mon Sep 17 00:00:00 2001 From: partizan Date: Mon, 5 Jun 2017 21:43:40 +0300 Subject: [PATCH] Fixed #28271 -- Added charset to technical_500_response() AJAX response. --- django/views/debug.py | 2 +- tests/view_tests/tests/test_debug.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/django/views/debug.py b/django/views/debug.py index d3361486cb..5fa412d436 100644 --- a/django/views/debug.py +++ b/django/views/debug.py @@ -86,7 +86,7 @@ def technical_500_response(request, exc_type, exc_value, tb, status_code=500): reporter = ExceptionReporter(request, exc_type, exc_value, tb) if request.is_ajax(): text = reporter.get_traceback_text() - return HttpResponse(text, status=status_code, content_type='text/plain') + return HttpResponse(text, status=status_code, content_type='text/plain; charset=utf-8') else: html = reporter.get_traceback_html() return HttpResponse(html, status=status_code, content_type='text/html') diff --git a/tests/view_tests/tests/test_debug.py b/tests/view_tests/tests/test_debug.py index 746d6cab8f..a89507269a 100644 --- a/tests/view_tests/tests/test_debug.py +++ b/tests/view_tests/tests/test_debug.py @@ -1079,6 +1079,11 @@ class AjaxResponseExceptionReporterFilter(ExceptionReportTestMixin, LoggingCaptu with self.settings(DEBUG=False): self.verify_unsafe_response(custom_exception_reporter_filter_view, check_for_vars=False) + @override_settings(DEBUG=True, ROOT_URLCONF='view_tests.urls') + def test_ajax_response_encoding(self): + response = self.client.get('/raises500/', HTTP_X_REQUESTED_WITH='XMLHttpRequest') + self.assertEqual(response['Content-Type'], 'text/plain; charset=utf-8') + class HelperFunctionTests(SimpleTestCase):