我最近将一个项目的 TestCafe 从
1.8.6
升级到 2.4.0
,现在我们的模拟由于 CORS 错误而失败,但是,我不确定如何解决它们。对于“OPTIONS”请求,我得到了正确的 200 状态,但实际请求因 CORS 错误而失败。
这是我们使用的模拟:
export function detailsMock(detailsMockData = {}) {
return RequestMock()
.onRequestTo(
new RegExp(
`^${env.API_URL}/orders/[0-9]+/disbursements/[0-9]+[\?disbursementId=[0-9]+]?$`
)
)
.respond(detailsMockData, 200, {
'access-control-allow-credentials': 'true',
'access-control-allow-origin': `${env.BASE_URL}`
});
}
然后在测试中我有:
await t.addRequestHooks(detailsMock(detailsMockData))
await t.navigateTo(`${env.BASE_URL}/order/${orderData.fileId}/disbursements/123`)
.expect(viewDisbursementPageSelectors.wireNotMatchToast.innerText)
.eql(
'Some message.'
)
await t.removeRequestHooks(disbursementListMock());
这是我在浏览器控制台中看到的 CORS 错误:
在'http://localhost:54392/QrHot6VR5HJPHVnKYb!a!0!sREMOVED-FOR-CONFIDENTIALITY/https://REMOVED-FOR-CONFIDENTIALITY/ncs/v1/orders/50612391/disbursements/ 访问 XMLHttpRequest来自来源“http://localhost:54391”的 123' 已被 CORS 策略阻止:在预检响应中,Access-Control-Allow-Headers 不允许请求标头字段 pragma。