Codeception 没有为 AJAX 设置 headers
Codeception not setting headers for AJAX
我设置了以下功能测试
$I = new FunctionalTester($scenario);
$I->wantTo('get a list of users');
$key = $I->amApiAuthenticated();
$I->seeInSession('key');
$I->setHeader('X-API-KEY', $key);
$I->sendAjaxGetRequest('/api/users');
$I->seeResponseCodeIs(200);
但测试失败,因为未设置 X-API-KEY
(导致 403),这是从 Laravel:
转储到日志文件的请求
[2015-05-07 00:26:10] production.INFO: GET /api/users HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Language: en-us,en;q=0.5
Host: localhost
User-Agent: Symfony2 BrowserKit
X-Requested-With: XMLHttpRequest
我是不是漏掉了什么? headers真的没有办法这样设置吗?我尝试了 REST 和 PhpBrowser ajax 方法,其中 none 有效。
我也尝试将其重命名为 HTTP_X_API_KEY
,但它仍然没有出现在请求中。
如有任何帮助,我们将不胜感激!
抱歉耽搁了。
我删除了对 PhpBrowser 的依赖,并包含了 REST 组件,此外还调整了我获取 header 字段的方式(使用 Request::header()
而不是 FormRequest
传递给控制器方法)。
我设置了以下功能测试
$I = new FunctionalTester($scenario);
$I->wantTo('get a list of users');
$key = $I->amApiAuthenticated();
$I->seeInSession('key');
$I->setHeader('X-API-KEY', $key);
$I->sendAjaxGetRequest('/api/users');
$I->seeResponseCodeIs(200);
但测试失败,因为未设置 X-API-KEY
(导致 403),这是从 Laravel:
[2015-05-07 00:26:10] production.INFO: GET /api/users HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Language: en-us,en;q=0.5
Host: localhost
User-Agent: Symfony2 BrowserKit
X-Requested-With: XMLHttpRequest
我是不是漏掉了什么? headers真的没有办法这样设置吗?我尝试了 REST 和 PhpBrowser ajax 方法,其中 none 有效。
我也尝试将其重命名为 HTTP_X_API_KEY
,但它仍然没有出现在请求中。
如有任何帮助,我们将不胜感激!
抱歉耽搁了。
我删除了对 PhpBrowser 的依赖,并包含了 REST 组件,此外还调整了我获取 header 字段的方式(使用 Request::header()
而不是 FormRequest
传递给控制器方法)。