zoukankan      html  css  js  c++  java
  • vue使用axios调用豆瓣API跨域问题

    最近做了一个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代理即可。

  • 相关阅读:
    POJ3297+map字符串处理
    POJ3204+DInic+maxflow
    HDU4704+费马小定理
    FZU-1924+判断环/DFS/BFS
    FZU-1921+线段树
    FZU-1926+KMP
    CodeForce 339:A+B+C
    HDU2896+AC自动机
    POJ2527+多项式除法
    鼠标移入移出事件
  • 原文地址:https://www.cnblogs.com/yangsg/p/10623063.html
Copyright © 2011-2022 走看看