这是我用来向响应添加remeber标头的当前方式:
@view_config(route_name='login', renderer='json', request_method='POST')
def post_login(request):
...
... authentication logic
...
headers = remeber(request, login)
return HTTPFound(location=came_from, headers=headers)
但我的js正在等待回复{success:True,message:'auth OK'}。 HTTPFound将重定向到came_from。我想要js重定向
所以我试过这个
@view_config(route_name='login', renderer='json', request_method='POST')
def post_login(request):
...
... authentication logic
...
return { 'successful': True, 'message': 'auth OK'}
但由于remeber标题永远不会添加到响应中,因此它永远不会在moooon的另一端进行身份验证。
所以我的问题是如何使用json渲染器添加这些记忆头?
答案 0 :(得分:11)
您可以直接在响应中设置该信息,如金字塔手册的Vary Attributes of Rendered Responses section中所述:
@view_config(route_name='login', renderer='json', request_method='POST')
def post_login(request):
...
... authentication logic
...
headers = remeber(request, login)
request.response.headerlist.extend(headers)
return { 'successful': True, 'message': 'auth OK'}