在cypress测试中请求路由时出现CORS错误
我想模拟SPA完成的一些API调用。因此,我正在使用cypress.JS,并通过以下测试检查了如何做到这一点在cypress测试中请求路由时出现CORS错误,cors,cypress,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 =>
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))
})
当我收到错误“CORS策略已阻止从源“”访问“”处的XMLHttpRequest:请求的资源上不存在“Access Control Allow origin”标头”时,该错误不起作用
是否有任何方法可以防止测试期间出现此错误?我不明白为什么Cypress处理这个简单的测试时会出现这个错误。在您的
Cypress.json
中,将chromeWebSecurity
设置为false
{
"chromeWebSecurity": false
}
从cypress文档中,将chromeWebSecurity
设置为false
可以执行以下操作:
- 显示不安全的内容
- 导航到没有跨原点错误的任何超域
- 访问嵌入在应用程序中的跨源iFrame
- 问题是,我使用基本url localhost:8080配置了cypress
{
"baseUrl": "http://localhost:8080"
}
但在我的测试中只使用了本地主机
it("Then it works", () => {
cy.server()
cy.route({
method: 'GET',
url: '/users/1',
response: true
})
axios.get("http://localhost:8080/users/1").then(response => {
console.log("received response: " + response)
expect(response.body).to.equal(true)
}).catch(error => console.log(error))
})
测试仍然不起作用,但我最初的问题得到了回答。发生错误是因为缺少端口。当我找到其他问题的解决方案时,我将更新此信息。“本地主机应位于同一位置。”-
http://localhost
和http://localhost:8080
不是同一来源。可能的重复不是重复,因为我不是在问CORS错误是什么意思。我在问为什么Cypress处理我的测试的方式会导致这个错误。我现在在我的问题中更清楚地说明了这一点。你的第一句话是一个很好的暗示。谢谢。请注意,这对除Chrome以外的浏览器不起作用