天天看點

調用豆瓣API加載圖檔報403

<React.Fragment>
    <img src="http://img3.doubanio.com/view/photo/s_ratio_poster/public/p511146807.jpg" alt="poster"/>
</React.Fragment>      

以上的連結是豆瓣API接口傳回的一個圖檔位址,如果在浏覽器位址中直接通路,那怎麼嘗試都可以打開,但是在Vue/React代碼中,它始終顯示不出來,其實是豆瓣限制了圖檔的加載。

豆瓣API是有請求次數限制的,這會引發圖檔在加載的時候出現403問題,視圖表現為“圖檔加載不出來”,控制台表現為報錯403。

用緩存解決

// 解決403圖檔緩存問題
getImages(_url){
    if( _url !== undefined ){
        let _u = _url.substring( 7 );
        return 'https://images.weserv.nl/?url=' + _u;
    }
}      
<React.Fragment>
     <img src={getImages('http://img3.doubanio.com/view/photo/s_ratio_poster/public/p511146807.jpg')} alt="poster"/>
</React.Fragment>      
<img src={this.props.images.small.replace('https','https://images.weserv.nl/?url=https')}  className={styles.img}/>      

繼續閱讀