为什么我请求不了数据?

为什么我请求不了数据?

// product.js
import jsonp from 'assets/js/jsonp';
import {jsonpOptions} from './config';

export const getProductResult = (id) => {
  const url = 'https://unszacs.m.taobao.com/h5/mtop.taobao.detail.getdetail/6.0/';
  const params = {
    api: 'mtop.taobao.detail.getdetail',
    ttid: '2017@taobao_h5_6.6.0',
    data: `{"itemNumId":"${id}"}`,
    appKey: 12574478,
    dataType: 'jsonp',
    type: 'jsonp',
    v: '6.0'
  };

  return jsonp(url, params, jsonpOptions).then(res => {
    console.log(res);
  });
};


//slider.vue

<template>
 <div class="slider-wrapper">
   <me-loading></me-loading>
   <me-slider :direction="direction" :loop="loop" :interval="interval" :pagination="pagination">
     <swiper-slide></swiper-slide>
   </me-slider>
 </div>
</template>

<script>
 import {swiperSlide} from 'vue-awesome-swiper';
 import {swiperOptions} from './config';
 import MeSlider from 'base/slider';
 import MeLoading from 'base/loading';
 import {getProductResult} from 'api/product';
 export default {
   name: 'ProductSlider',
   components: {
     MeSlider,
     MeLoading,
     swiperSlide
   },
   data() {
     return {
       direction: swiperOptions.direction,
       loop: swiperOptions.loop,
       interval: swiperOptions.interval,
       pagination: swiperOptions.pagination,
       sliders: []
     };
   },
   methods: {
     getProduct() {
       getProductResult(this.$route.params.id);
     }
   },
   created() {
     this.getProduct();
   }
 };
</script>

<style scoped>

</style>

http://img1.sycdn.imooc.com//climg/5d5d2c940001f32516830291.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕慕子 2019-08-22 14:44:31

同学你好, 老师测试时, 提供的这种参数配置是可以获取到数据, 不过可能由于浏览器解析的问题, 导致同学测试的时候不可以的。 不过最终同学找到解决方式还是很棒的, 可以继续书写项目了。祝学习愉快~~~

好帮手慕慕子 2019-08-22 13:46:51

同学你好, 老师在源码中测试, 同学的粘贴的这部分代码是没有问题的, this.$route.params.id是可以请求数据的, 因为不确定同学的 this.$route.params.id是否获取到, 所以上一条解答中老师以固定的id测试结果。

现在,老师给同学展示一下, 在源码中测试, 以 this.$route.params.id获取数据

  1. 测试传入的id

    http://img1.sycdn.imooc.com//climg/5d5e2ab10001dd0a07110145.jpg

    http://img1.sycdn.imooc.com//climg/5d5e2ac60001dbca03920030.jpg

  2. 封装的函数,也是可以成功的请求会数据的

    http://img1.sycdn.imooc.com//climg/5d5e2b020001209806740441.jpg

    http://img1.sycdn.imooc.com//climg/5d5e2b37000154f508510575.jpg

综上所述, 同学粘贴的这部分代码是没有问题。

建议: 同学可以先检查一下this.$route.params.id是否有值。

另, 有时候看不到效果可能是由于浏览器有缓存, 建议可以清除浏览器缓存, 重启项目测试一下

希望能够帮助到你,祝学习愉快~~~

  • 提问者 soso_crazy #1
    我的this.$route.params.id打印过是有值的 另外,我根据其他老师的参数params可以请求到数据 const params = { api: 'mtop.taobao.detail.getdetail', ttid: '2017%40taobao_h5_6.6.0', data: `%7B"itemNumId"%3A"${id}"%7D`, appkey: 12574478, dataType: 'jsonp', type: 'jsonp', v: '6.0' }; 但是老师你的参数配置我获取不了数据
    2019-08-22 13:52:59
好帮手慕慕子 2019-08-22 10:21:26

同学你好, 老师使用固定的id测试你粘贴的这段代码, 是可以请求回数据的

http://img1.sycdn.imooc.com//climg/5d5dfb740001835e05810142.jpg

http://img1.sycdn.imooc.com//climg/5d5dfb910001589311350601.jpg

建议: 同学可以检查一下是否是id传入有误

如果还有疑惑, 可以再次提问,我们会继续为你解答的

希望能够帮助到了你, 祝学习愉快~~

  • 提问者 soso_crazy #1
    那使用this.$route.params.id可以请求到数据吗?我使用固定id也请求不了数据。但是我首页的recommend可以请求到数据,说明jsonp的封装没有问题啊。
    2019-08-22 11:57:40
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师