我有一个奇怪的问题,可能是由我引起的,我个人怀疑服务器端代码,但是我想查看是否缺少某些内容,因此我的目标不是相应地更改服务器这样做,但我想了解引擎盖下发生了什么。。因此,我有一个Nuxt应用程序,该应用程序将需要使用2个api,因此我决定测试一下在早期阶段如何解决该问题,因此我尝试了很少首先,使用@ nuxtjs / axios模块的axios请求可以正常工作,但是现在,我看到的东西真让我感到困惑。
请求的外观如下:
async fetchData() {
const data = await this.$axios.$get(
process.env.cmBaseUrl + '/api/products',
{
auth: {
username: process.env.cmUsername,
password: process.env.cmPassword
}
}
)
console.log(data)
}
服务器使用的是基本授权,这就是为什么我使用auth
属性的原因,但是该属性较早起作用,我还尝试通过nuxtServerInit(在存储区),asyncData(在页面中),常规方法和布局,但无济于事(正如我之前说过的,它既适用于商店,也适用于页面)。
但是在这种情况下真正奇怪的是,在运行npm run dev
的控制台中,当我重新加载页面并运行created()
钩子时,可以看到该请求的响应fetchData()
函数。
但是在浏览器控制台中,我看到了“网络错误”,并且请求停留在OPTIONS
上(尽管之前确实通过了,在服务器端没有任何更改,这不应该与CORS相关)。
所以我主要担心的是,我不理解(这是我的错),为什么请求会在节点环境中通过,但是如果由于浏览器请求而确实与CORS相关,那么浏览器中的行为就会有所不同被卡在OPTIONS
上并且从未进入GET请求,它如何通过节点?
答案 0 :(得分:0)
据我了解,您可以在命令行中看到响应,但是您不能在浏览器中看到,这是可以预期的。 CORS仅在浏览器中发生。命令行,邮递员和类似的东西不是浏览器,您不会在其中得到CORS错误。您需要在后端应用中设置CORS策略,以便能够在浏览器中获得响应。