vue使用axios调用豆瓣API跨域问题

vue

最近做了一个vue小demo,使用了豆瓣开源的API,通过ajax请求时需要跨域才能使用。

 

封面.jpg

一、以下是豆瓣常用的开源接口:

正在热映 :https://api.douban.com/v2/movie/in_theaters 

即将上映 :https://api.douban.com/v2/movie/coming_soon

TOP 250 :https://api.douban.com/v2/movie/top250

电影详情 :https://api.douban.com/v2/movie/subject/:id

由于豆瓣api跨域问题,因此不能直接通过ajax请求访问,我们通过vue-cli提供给我们的代理(proxy)进行配置即可,打开config/index.js,配置代理proxyTable属性如下:

//在proxyTable这个属性中,配置target属性为我们要代理的目标地址。

proxyTable: {

'/api': {

target: 'http://api.douban.com/v2',

changeOrigin: true,

pathRewrite: {

'^/api': ''

}

}

}

这时,我们实际请求ajax。即访问了http://api.douban.com/v2/movie/in_theaters,从而解决跨域的问题。

created:function (){

axios.get('/api/movie/in_theaters')

//成功返回

.then(response=>{

console.log(response);

})

//失败返回

.catch(error=>{

console.log(error);

})

}

二、注意

最后,要注意了,豆瓣API是有请求次数限制的,不要以为自己coding错了哦。没有申请KEY的一段时间内(听说是1分钟)只能请求10次,申请的KEY只能40次。

并且,当npm run build打包上线发布时,请求会返回404,因为开发环境是vue的proxy代理在生效,把代码放到服务器并且在服务器设置proxy代理即可。

以上是 vue使用axios调用豆瓣API跨域问题 的全部内容, 来源链接: utcz.com/z/379987.html

回到顶部