我的请求数据是怎么了?请求了数据为什么还throw new Error?

我的请求数据是怎么了?请求了数据为什么还throw new Error?

我在提问区里看到两个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'
};

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

但是为什么还是会throw new Error?

这个配置我是能获取到数据,但是另外一个老师给的配置参考我获取不了数据

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

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


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

// 获取搜索结果数据--jsonp
export const getProductDetail = (id) => {
 const url = 'https://unszacs.m.taobao.com/h5/mtop.taobao.detail.getdetail/6.0/';
 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'
 };

 // jsonp代表调用开头引入封装好的jsonp.js,指向的是jsonp.js中暴露的方法export default (url, data, options),返回的是Promise对象
 return jsonp(url, params, jsonpOptions).then(res => {
   if (res) {
     console.log(res);
   }
   throw new Error('没有成功获取到数据!');
 }).catch(err => {
   console.log(err);
 }).then(res => { // res接收返回来的数据
   return new Promise(resolve => {
     setTimeout(() => {
       resolve(res); // 1s后将请求回来的数据发送出去
     }, 1000);
   });
 });
};



<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 {getProductDetail} from 'api/product.js';

 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(id) {
       getProductDetail(id);
     }
   },
   created() {
     this.getProduct(this.$route.params.id);
   }
 };
</script>

<style scoped>

</style>




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

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

1回答
好帮手慕言 2019-08-22 17:43:08

同学你好,可以把throw new Error放到else里面。

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

另外老师使用同学的方式是不能请求到数据的

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

使用下面的方式可以请求到数据

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

可能是由于浏览器解析的问题,不管使用哪种能请求到数据就可以啦

如果帮助到了你,欢迎采纳~祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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