2-vue3调用豆瓣API加载图片403问题

本文介绍了一位开发者如何使用Vue和images.weserv.nl服务解决从豆瓣API获取图片时遇到的403问题,通过配置图片缓存与适应性调整,成功解决了图片加载问题。关键步骤包括使用weserv.nl服务代理和处理返回的JSON数据。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值