我的请求数据是怎么了?请求了数据为什么还throw new Error?
来源:3-3 项目作业
soso_crazy
2019-08-22 12:47:50
我在提问区里看到两个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'
};
但是为什么还是会throw new Error?
这个配置我是能获取到数据,但是另外一个老师给的配置参考我获取不了数据
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回答
好帮手慕言
2019-08-22
同学你好,可以把throw new Error放到else里面。
另外老师使用同学的方式是不能请求到数据的
使用下面的方式可以请求到数据
可能是由于浏览器解析的问题,不管使用哪种能请求到数据就可以啦
如果帮助到了你,欢迎采纳~祝学习愉快~
相似问题