我有一个 Angular/Restangular 应用程序,它将X-CSRFToken标头附加到后端 REST API 的所有 POST 请求。标头的值是从$cookies.csrftoken中提取的。这是必要的,因为 Django 后端使用 SessionAuthentication 的行为 - 它需要此标头用于 POST 请求。CORS 配置在前端和后端的域之间。
这在 Chrome 或 Firefox 的普通浏览器会话中运行良好。
当通过 Webdriver 和 Protractor 运行时,确实存在并发送了 csrftoken cookie,但$cookies对 Angular 来说是空的,因此 X-CSRFToken 也是空的。在 webdriver 生成的 Firefox 实例期间,我可以清楚地看到这种情况发生在打印调试和调试器中。
这只发生在通过量角器运行测试套件时。我无法以任何其他方式复制空的 $cookies。我也很惊讶在测试框架下的行为会如此不同。
有任何想法吗?我错过了什么吗?