在Nuxt.js中请求怪异的行为

时间:2019-11-06 11:16:58

标签: cors axios nuxt.js

我有一个奇怪的问题,可能是由我引起的,我个人怀疑服务器端代码,但是我想查看是否缺少某些内容,因此我的目标不是相应地更改服务器这样做,但我想了解引擎盖下发生了什么。。因此,我有一个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()函数。 enter image description here

但是在浏览器控制台中,我看到了“网络错误”,并且请求停留在OPTIONS上(尽管之前确实通过了,在服务器端没有任何更改,这不应该与CORS相关)。

S

所以我主要担心的是,我不理解(这是我的错),为什么请求会在节点环境中通过,但是如果由于浏览器请求而确实与CORS相关,那么浏览器中的行为就会有所不同被卡在OPTIONS上并且从未进入GET请求,它如何通过节点?

1 个答案:

答案 0 :(得分:0)

据我了解,您可以在命令行中看到响应,但是您不能在浏览器中看到,这是可以预期的。 CORS仅在浏览器中发生。命令行,邮递员和类似的东西不是浏览器,您不会在其中得到CORS错误。您需要在后端应用中设置CORS策略,以便能够在浏览器中获得响应。