vue.js 收到请求后,响应到来,但请求对象为空

zi8p0yeb  于 2023-06-24  发布在  Vue.js
关注(0)|答案(1)|浏览(179)

通过vue cli对express服务器的获取请求有问题,有一个错误“cors”,修复了它,现在我得到了请求,但我在开发工具enter image description here的网络中看到了它,但控制台是空的enter image description here这里是代码:

methods: {
async getInfo () {
  const response = await fetch('https://ksjkfsjdbnfksjfksjf744.netlify.app/.netlify/functions/api/demo',
    { mode: 'no-cors' })
  const responseString = await response
  const responseObject = await JSON.parse(JSON.stringify(responseString))
  console.log(responseString)
  console.log(responseObject)
}

解决不了问题

kx5bkwkv

kx5bkwkv1#

Fetch documentation
Response对象并不直接包含实际的JSON响应主体,而是整个HTTP响应的表示。因此,为了从Response对象中提取JSON正文内容,我们使用json()方法,该方法返回第二个promise,该promise将响应正文解析为JSON。
总之,要获取JSON,请对返回的fetch响应使用json()方法

const response = await fetch('https://ksjkfsjdbnfksjfksjf744.netlify.app/.netlify/functions/api/demo',
    { mode: 'no-cors' })
const responseObject = await response.json()
console.log(responseObject)

编辑:

只有删除mode: 'no-cors'时才有效。推理是here。与其试图绕过CORS,更好的解决方案是在后端添加CORS允许的前端源。

相关问题