vue实现跨域

作者: 前端来入坑 | 来源:发表于2018-10-15 18:24 被阅读9次
    error.png
    在请求的资源上没有“访问控制允许源”标头。因此,“http://LoalHoal:8081”是不允许访问的。
    出现这个报错就说明,浏览器限制了跨域,需要设置跨域

    一、后台更改header

    header('Access-Control-Allow-Origin:*');//允许所有来源访问 
    header('Access-Control-Allow-Method:POST,GET');//允许访问的方式 
    

    二、使用JQuery提供的jsonp需要vue中引入jquery,不是今天讲的重点

    methods: { 
      getData () { 
        var that = this 
        $.ajax({ 
          url: 'yoururl', 
          type: 'GET', 
          dataType: 'JSONP', 
          success: function (res) { 
            that.data = res.data;
          } 
        }) 
      } 
    }  
    

    三、使用vue-cli脚手架搭建项目时候的proxyTable解决跨域

    在config目录下的index.js的proxyTable配置:
    第一种:

    proxyTable: {
            '/api': {  //使用"/api"来代替"http://v.juhe.cn/toutiao/index" 
                target: 'http://v.juhe.cn/toutiao/index', //源地址 
                changeOrigin: true, //改变源 
                pathRewrite: { 
                  '^/api': '' //路径重写 
                  } 
              }
        },
    
    this.axios.post("/api?type=keji&key=yourkey").then(res => {
        console.log("api:"+res);
        this.kjnews = res.data.result.data;
    });
    

    注意:路径重写后面是空的不然请求不成功,最后配置完之后还要npm run dev重启一下

    相关文章

      网友评论

      • _不能说的秘密i:你只要在后端设置 header 头, 使用axios就能够直接跨域了, 使用jQuery 还需要在引入一个包....这还不如用创建原生 script 标签的方式来进行跨域...:sweat:
        _不能说的秘密i:@前端来入坑 好吧:sweat:
        前端来入坑:是写的三种方法噢

      本文标题:vue实现跨域

      本文链接:https://www.haomeiwen.com/subject/zstoaftx.html