使用vue-resource获取一段json数据,为什么返回的是一个Blob对象?

发布于 2022-09-04 23:00:49 字数 511 浏览 12 评论 0

代码如下:

var app = new Vue({

    el: '#app',
    data: {
      data: ""
    },
    created: function () {
      this.$http.get('./test.json').then(res => {
        console.log('请求成功')
        this.data = res.body
        console.log(this.data)
      }, res => {
        console.log('请求失败')
      })
    }
  })

浏览器打印出的是一个Blob对象:
图片描述

求解

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

俏︾媚 2022-09-11 23:00:49

设置Content-TypeAcceptapplication/json试试

谈下烟灰 2022-09-11 23:00:49

今天也遇到了这个问题,找了半天解决不了。后来改用fetch 可以正常返回,后来请教大神,大神对比了fetch 和 vue resources 源码后,给出下列方案

                function readBlobAsText(blob) {
                    var reader = new FileReader()
                    var promise = fileReaderReady(reader)
                    reader.readAsText(blob)
                    return promise
                }

                function fileReaderReady(reader) {
                    return new Promise(function(resolve, reject) {
                      reader.onload = function() {
                        resolve(reader.result)
                      }
                      reader.onerror = function() {
                        reject(reader.error)
                      }
                    })
                 }

                this.$http.get(url)
                    .then(res => readBlobAsText(res.body))
                    .then(text => {
                        console.log(text);
                    })
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文