我使用以下中间件片段:
class AjaxRedirect(object):
"""
Instead of returning a 302 for AJAX requests, instead we should return a 200 with a location
to redirect to so jQuery can forward the user as needed.
"""
def process_response(self, request, response):
if request.is_ajax():
if type(response) == HttpResponseRedirect:
logger.warn(response.__dict__)
redirect = '%s&ajaxRedirect=1' % response['Location']
logger.info('Returned AjaxRedirect to %s' % redirect)
return HttpResponse(
json.dumps(
{'redirect': redirect},
indent=4,
sort_keys=False),
content_type='application/json; charset=UTF-8');
return response
但是,如果重定向到一个外部站点,我想放弃查询字符串参数。如果我同时拥有HttpRequest
和HttpResponseRedirect
实例,有没有可靠的方法来查找这些信息?在
解决方案
添加以下检查:
^{pr2}$
不确定这是否是最佳选择,但您可以将request.get_host()与{}(或django dev版本中的response.url)进行比较。在
希望有帮助。在
相关问题 更多 >
编程相关推荐