javascript - Cypress - 为所有 XHR 请求添加自定义标头
问题描述
我注意到X-CSRFToken
,对于从被测应用程序触发的所有 XHR 请求,标头在测试之间被删除。我不确定是否保留此标头,因为我已经通过Cypress.Cookies.preserveOnce('sessionid', 'csrftoken')
因此,我想将自定义标头附加X-CSRFToken
到应用程序的所有 XHR 请求中。这是我使用的脚本,我csrftoken
从中获取 cookie 并设置为自定义标头。
cy.server({
onAnyRequest: function(route, proxy) {
proxy.xhr.setRequestHeader('X-CSRFToken', cy.getCookie('csrftoken'));
}
})
在这里,我收到以下错误,
Argument of type '{ onAnyRequest: (route: any, proxy: any) => void; }' is not assignable to parameter of type 'Partial<ServerOptions>'.
Object literal may only specify known properties, and 'onAnyRequest' does not exist in type 'Partial<ServerOptions>'.
我期待这种方法的任何可行解决方案或更好的解决方案。
解决方案
现在cy.server
已弃用,您可以cy.intercept
改用:
cy.intercept('http://api.company.com/', (req) => {
req.headers['authorization'] = `token ${token}`
})
文档中的更多信息。
推荐阅读
- r - R - highcharter - 展示的选择性图例
- python - 从 Python 中的 Apache Beam Dataflow 连接到 Google Cloud BigQuery 时出现 TypeError?
- laravel - Laravel 论坛 - Chatter
- android - 为什么 Firestore DocumentSnapshot.exist() 总是`false` addOnCompleteListener?
- ios - 如何将我网站上的音频文件合并到我的 iOS 应用程序中?
- vb.net - DotRas 错误“不支持转换值 'gre'。”
- c# - C# 中的多线程和更新表
- apache-spark - 将源文件存储在 Google dataproc HDFS 与谷歌云存储(谷歌存储桶)中
- java - 我怎样才能让我的复选框自己检查
- sql-server - 代码可以在一台计算机上运行 - 但不能在其他计算机上运行