vue调用豆瓣API加载图片403问题
问题背景:
建立的json-server来储存数据,用axios来请求数据,结果请求图片后出现403问题
过程:
后来几天看到了一位大佬的分享——侃叔, 一试边成了
代码如下:
<template>
<div class="Bottom">
<div class="b_nav">
<span class="popular">影院热映</span>
<div class="more">查看更多<i class="iconfont icon-arrow-right"></i></div>
</div>
<div class="movies" v-for="(item, index) in state.imgs" :key="index">
<div class="row" >
<img :src="item" >
<span>{{state.imgList[index].title}}</span>
</div>
</div>
</div>
</template>
<script>
import {getInfo} from '@/api/index.js'
import { onMounted, reactive, ref } from '@vue/runtime-core'
export default {
name: 'Bottom',
setup() {
//_url:通过异步请求得到的图片链接,这个是我从豆瓣请求到的一个图片链接:
let getImages = function(_url) {
if( _url !== undefined ){
let _u = _url.substring(7); //_u:提取http://后面的部分
return 'https://images.weserv.nl/?url=' + _u;
}
}
let state = reactive({
imgList: [],
imgs: [],
})
onMounted(async () => {
// let res = await axios.get('http://localhost:3000/posts?')
let res = await getInfo();
// console.log(res.data);
// console.log(res.data[0].cover);
state.imgList = JSON.parse(JSON.stringify(res.data))// 序列化后可以取值
// console.log(state.imgList);
state.imgList.forEach((item) => {
state.imgs.push(getImages(item.cover));
})
})
return {
state
}
},
}
</script>
css有点粗糙就不反啦
图示:
代码图:
其实是这个网址 :
https://images.weserv.nl/docs/format.html#adaptive-filter
images.weserv.nl是一种图像缓存和调整大小服务。我们的服务器调整您的图像大小,在全球范围内缓存并显示它。
db.json:
效果:
侃叔文章链接:https://blog.csdn.net/weixin_34849131/article/details/119589238?spm=1001.2014.3001.5501