4

这是我用来添加记忆头响应的当前方式:

@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 正在等待响应 {successful: 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'}

但由于记住标头从未添加到响应中,因此永远不会在 moooon 的另一侧进行身份验证。

所以我的问题是如何使用 json 渲染器添加那些记忆标题?

4

1 回答 1

11

您可以直接在响应中设置该信息,如Pyramid 手册的Vary Attributes of Rendered Responses 部分所述:

@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'}
于 2013-02-17T21:25:40.593 回答