javascript - 关于vue-resource的一点问题

 懒羊羊2502880053 发布于 2022-11-27 09:34

我在使用vue-resource的vue.http.jsonp时发现请求参数需要用params包装起来,官方并没有任何说明,这就已经够坑了。。但是下面更坑

this.$http.jsonp('http://XXX.XXX.XXX.5/api/v1/stock/list', {
            params: {
                account:'8888',
                data:'{"page":2,"rows":10,"timestamp":'+t+'}'
            },
            jsonp:"_callback"
        }).then(function(data){
            console.log(12323);
            console.log(data);
        },function(err){
            console.log(123123);
            console.log(err);
        }); 

浏览器报json格式错误

但是请求却已经成功了

响应数据在请求内都已有,但是浏览器却报错,这种情况在jquery上并没有发生,jquery jsonp跨域处理后状态码200,并没有浏览器的json格式报错,请问是否有人遇到过这种情况呢?如何解决

4 个回答
  • 作者已经在微博上宣布不再将vue-resource作为官方推荐的插件了
    所以建议使用ES5的fetch来代替

    2022-11-27 11:13 回答
  • 我想可能和 Content-Type有关系吧,vue-resource默认是application/json
    你写个这行代码 全局配置试试
    Vue.http.options.emulateJSON = true;
    使http请求格式便成为application/x-www-form-urlencoded

    2022-11-27 11:13 回答
  • 传递的是JSON,或者JSON对象就行啊。你params里面的属性不需要加“”,么。写个简单的JSON看看还会不会报错。

    2022-11-27 11:13 回答
  • 我的用法,仅供参考

    created () {
      this.$http.jsonp('').then((response) => {
        response = response.body
        console.log(response)
      }, (error) => {
        console.log(error.message)
      })
    }
    2022-11-27 11:13 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有