javascript - 关于vue-resource的一点问题
迷茫
迷茫 2017-04-11 11:35:57
[JavaScript讨论组]

我在使用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)
迷茫

我的用法,仅供参考

created () {
  this.$http.jsonp('').then((response) => {
    response = response.body
    console.log(response)
  }, (error) => {
    console.log(error.message)
  })
}
大家讲道理

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

ringa_lee

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

巴扎黑

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号