Fixed #2078 -- Improved HttpResponseRedirect and HttpResponsePermanentRedirect to percent-encode non-ASCII characters in the Location header. Thanks, Andrey
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3166 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
6b730e1e92
commit
7aec348677
|
@ -1,8 +1,10 @@
|
|||
from Cookie import SimpleCookie
|
||||
from pprint import pformat
|
||||
from urllib import urlencode
|
||||
from urllib import urlencode, quote
|
||||
from django.utils.datastructures import MultiValueDict
|
||||
|
||||
RESERVED_CHARS="!*'();:@&=+$,/?%#[]"
|
||||
|
||||
try:
|
||||
# The mod_python version is more efficient, so try importing it first.
|
||||
from mod_python.util import parse_qsl
|
||||
|
@ -242,13 +244,13 @@ class HttpResponse(object):
|
|||
class HttpResponseRedirect(HttpResponse):
|
||||
def __init__(self, redirect_to):
|
||||
HttpResponse.__init__(self)
|
||||
self['Location'] = redirect_to
|
||||
self['Location'] = quote(redirect_to, safe=RESERVED_CHARS)
|
||||
self.status_code = 302
|
||||
|
||||
class HttpResponsePermanentRedirect(HttpResponse):
|
||||
def __init__(self, redirect_to):
|
||||
HttpResponse.__init__(self)
|
||||
self['Location'] = redirect_to
|
||||
self['Location'] = quote(redirect_to, safe=RESERVED_CHARS)
|
||||
self.status_code = 301
|
||||
|
||||
class HttpResponseNotModified(HttpResponse):
|
||||
|
|
Loading…
Reference in New Issue