在柏树测试中请求路由时出现 CORS 错误

Her*_*sch 3 cors cypress

我想模拟我的 SPA 完成的一些 API 调用。因此,我使用 cypress.JS 并使用以下测试检查了如何执行此操作。

it("Then it works", () => {
    axios.defaults.baseURL = 'http://localhost';

    cy.server()
    cy.route("GET", "http://localhost/users/", true)

    axios.get("/users/").then(response => {
        console.log("received response: " + response)
        expect(response.body).to.equal(true)
    }).catch(error => console.log(error))
})
Run Code Online (Sandbox Code Playgroud)

它不起作用我收到错误“访问 XMLHttpRequest at ' http://localhost/users/ ' from origin ' http://localhost:8080 ' has been Blocked by CORS policy: No 'Access-Control-Allow-Origin ' 请求的资源上存在标头。”

有没有办法在测试过程中防止这个错误?我不明白为什么赛普拉斯以可能发生此错误的方式处理这个简单的测试。

Dio*_*cha 19

在您cypress.json设置chromeWebSecurityfalse.

{
  "chromeWebSecurity": false
}
Run Code Online (Sandbox Code Playgroud)

这里的cypress 文档中,设置chromeWebSecurityfalse允许您执行以下操作:

  • 显示不安全的内容
  • 导航到任何没有跨域错误的超级域
  • 访问嵌入在您的应用程序中的跨源 iframe。

  • 请注意,这不适用于 Chrome 以外的浏览器 (2认同)
  • 你指的是 ***chrome 系列***浏览器,其中包括 Electron 和 Edge、Opera 以及一些不太知名的浏览器。请参阅[跨浏览器测试](https://docs.cypress.io/guides/guides/cross-browser-testing) (2认同)