2

我正在尝试为 ajax 视图编写测试...视图配置如下:

@view_config(name='new', context='resource.Events', renderer='json',
             request_method='POST', xhr=True)
def event_view(self):
    # ...

在我的测试中,我想创建一个 ajax 帖子,所以我尝试:

extra_environ = {'X_REQUESTED_WITH' : 'XmlHttpRequest'}
# also tried setting HTTP_X_REQUESTED_WITH

self.testapp.post('/events/new', params=post_params, extra_environ=extra_environ)

但是帖子永远不会被路由到我的视图。request.is_xhr 参数永远不会设置为 True。

应该是某个地方的简单答案,但我在任何文档或其他地方都找不到它。谁能推荐如何做到这一点?

谢谢!

4

2 回答 2

2

看起来我没有正确封装“xmlhttprequest”。需要是:

extra_environ = {'HTTP_X_REQUESTED_WITH' : 'XMLHttpRequest'}

在代码中找到了这个:

webob/request.py 第 472 行

不幸的是,需要为此挖掘代码。也感到惊讶的情况下。

于 2012-04-17T09:11:21.490 回答
1

在我的情况下,在发布请求中设置xhr=True就足够了。

self.testapp.post('/events/new', params=post_params, xhr=True)
于 2014-12-30T07:58:51.793 回答