【发布时间】:2023-03-26 13:08:01
【问题描述】:
我想模拟一些由我的 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))
})
它不起作用我收到错误“从源 'http://localhost:8080' 访问 XMLHttpRequest 在 'http://localhost/users/' 已被 CORS 策略阻止:没有 'Access-Control-请求的资源上存在 Allow-Origin' 标头。"
有什么方法可以防止测试过程中出现这个错误吗?我不明白为什么赛普拉斯会以可能发生此错误的方式处理这个简单的测试。
【问题讨论】:
-
"本地主机应该是同一个位置。" —
http://localhost和http://localhost:8080不是同一个来源。 -
这不是重复的,因为我不是在问 CORS 错误是什么意思。我在问为什么赛普拉斯以导致此错误的方式处理我的测试。我现在在我的问题中更清楚地说明了这一点。你的第一条评论是一个很好的提示。谢谢。