用Superagent模仿Ajax请求

时间:2016-08-09 21:24:02

标签: node.js express supertest superagent

我正在使用Supertest(以及Superagent)对Node.js项目进行一些API测试。我有一个特定的路由,根据请求的类型返回不同的内容。使用expressJS的req.xhr,如果为true,代码将返回JSON,如果为false,则返回重定向。我想在我的测试中考虑到这一点,但我很难让Superagent模仿XHR GET请求。

根据ExpressJS文档,它正在寻找要设置为值X-Requested-With的请求中的XMLHttpRequest标头。当我尝试使用.set('X-Requested-With', 'XMLHttpRequest')设置此标头时,我得到了

Unhandled rejection Error: Can't set headers after they are sent.
    at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:344:11)

奇怪的是,我可以设置其他标题,甚至在此之前,就好了 .set('Accept', 'application/json')。如果标题已经写入,这也应该失败,但事实并非如此。此外,检查res.request.req._headers,似乎没有其他设置X-Requested-With所以它不像其他东西给它一个值。

0 个答案:

没有答案