Javascript 如何使Testcafe在不允许的CORS头上失败

Javascript 如何使Testcafe在不允许的CORS头上失败,javascript,node.js,testing,cors,testcafe,Javascript,Node.js,Testing,Cors,Testcafe,我正在测试生产web应用程序是否只允许CORS HTTP头。在我的测试中,发送的非法CORS头绕过浏览器验证,因为请求来自位于同一来源的代理URL。例如: Request URL: http://192.168.0.139:43561/T87i44N5N*DrJe7nq7U/https://example.com/cart 我的HTTP请求包含以下自定义HTTP头: evil-header: break-it 在响应中,access control allow headers值中不允许使用此

我正在测试生产web应用程序是否只允许CORS HTTP头。在我的测试中,发送的非法CORS头绕过浏览器验证,因为请求来自位于同一来源的代理URL。例如:

Request URL: http://192.168.0.139:43561/T87i44N5N*DrJe7nq7U/https://example.com/cart
我的HTTP请求包含以下自定义HTTP头:

evil-header: break-it
在响应中,
access control allow headers
值中不允许使用此头,并且应该会导致CORS错误

access-control-allow-headers: authorization, accept-currency, accept-language, cookie, content-type, context-campaign, context-container-name, csrf-token, customer-id, experiments, geo-ip-country, origin, referer, session-id, visitor-id

尽管如此,请求返回时状态代码为200,测试没有失败。

如果请求来自同一来源的代理URL,然后请求不是CORS请求,因此浏览器不使用CORS协议-这意味着浏览器不检查任何访问控制响应头。因此,要运行测试,您需要直接向
https://example.com/cart
endpoint,否则您需要在与前端代码不同的来源处运行代理(例如,在不同的端口上运行)。谢谢,@sideshowbarker。我发现一些帖子说,如果发生CORS错误,Testcafe应该返回状态代码222。我的情况应该是一样的吗?您可能知道为什么请求与此代理URL冲突,以及我如何使其直接进行?此行为看起来像一个bug。我在我这边复制了它。我在TestCafe hammerhead存储库中打开了一个问题来研究它:。请跟踪它以了解我们的进度。作为一种解决方法,您可以尝试使用手动处理此问题。我无法使用
testcafe@1.10.2-alpha.1
。请使用此alpha版本检查您的场景。