redirect(...) now works on ajax responses, thanks Anthony

This commit is contained in:
mdipierro
2012-08-08 10:05:09 -05:00
parent 084f19c212
commit 084c22c282
5 changed files with 28 additions and 5 deletions
+9 -4
View File
@@ -119,13 +119,18 @@ class HTTP(BaseException):
return self.message
def redirect(location, how=303):
def redirect(location, how=303, type=None):
from gluon import current
type = type or ('client' if current.request.ajax else 'http')
if not location:
return
location = location.replace('\r', '%0D').replace('\n', '%0A')
raise HTTP(how,
'You are being redirected <a href="%s">here</a>' % location,
Location=location)
if type == 'client':
raise HTTP(200, **{'web2py-redirect-location': location})
else:
raise HTTP(how,
'You are being redirected <a href="%s">here</a>' % location,
Location=location)