我正在使用pdb
逐步执行django请求/响应周期来调试重定向被修复的问题。
我在响应的最后阶段(link to django source)已经过了中间件的应用程序,我到达BaseHandler.apply_response_fixes(request,response)
被调用的地方,它与我的重定向标题混淆:
之前的标题
(Pdb) response._headers
{'x-frame-options': ('X-Frame-Options', 'SAMEORIGIN'),
'content-type': ('Content-Type', 'application/octet-stream'),
'location':'http://localhost:9000/6/result//blogs/',
'server': ('Server', 'WSGIServer/0.2 CPython/3.4.3')}
现在我进行下一步:
-> response = self.apply_response_fixes(request, response)
(Pdb) n
现在我的位置标题中有一个迷路t
:
标题
这里发生了什么? 我该如何规避这个问题?(Pdb) response._headers
{'x-frame-options': ('X-Frame-Options', 'SAMEORIGIN'),
'content-type': ('Content-Type', 'application/octet-stream'),
'location': ('Location', 'http://localhost:9000/6/result//blogs/t'),
'server': ('Server', 'WSGIServer/0.2 CPython/3.4.3')}
BaseHandler.apply_response_fixes(request,response)
看起来很凶悍:response_fixes = [
http.conditional_content_removal,
]
def apply_response_fixes(self, request, response):
"""
Applies each of the functions in self.response_fixes to the request and
response, modifying the response in the process. Returns the new
response.
"""
for func in self.response_fixes:
response = func(request, response)
return response
BaseHandler.apply_response_fixes(request, response)
做了什么?