您现在的位置:首页 >> 前端 >> 内容

前后端分离项目的跨域问题解决方案分享

时间:2018/6/26 16:19:54 点击: 22

  核心提示:跨域问题是前后端分离项目的典型问题之一,前端采用vue-cli新建的项目运用接口代理来实现跨域处理一、在vue项目中config/index.js文件中module.exports = {dev: {...

跨域问题是前后端分离项目的典型问题之一,前端采用vue-cli新建的项目运用接口代理来实现跨域处理

一、在vue项目中config/index.js文件中

module.exports = {
  dev: {

    // Paths
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: {
      '/api': {
        target: 'https://api.demo.com/api', //代理域名
        changeOrigin: true,//是否改变源
        pathRewrite: {
          '^/api': '/' //路径重写
        }
      }
    },

二、后台更改header

    header('Access-Control-Allow-Origin:*'); // '*'代表允许所有域名访问
    // header('Access-Control-Allow-WithCredentials:true');
    // 响应类型
    header('Access-Control-Allow-Methods:*'); //  '*'代表允许所有请求方式访问
    // 响应头设置
    header('Access-Control-Allow-Headers:x-requested-with,content-type');

三、使用JQuery提供的jsonp (注:vue中引入jquery,自行百度)

methods: { 
  getData () { 
    var that= this 
    $.ajax({ 
      url: 'https://api.demo.com', 
      type: 'GET', 
      dataType: 'JSONP', 
      success: function (res) { 
        //请求成功后的操作
      } 
    }) 
  } 
}

通过这中方法去解决跨域,打包部署时还按这种方法会出问题。解决方法如下:

let serverUrl = '/api/'  //本地调试时 
// let serverUrl = 'https://f.apiplus.cn/'  //打包部署上线时 
export default { 
  dataUrl: serverUrl + 'bj11x5.json' 
}

作者:网络 来源:孤心泪的博客
请选择您看到这篇文章时的心情: 已有0人表态:
0
0
0
0
0
0
0
0
惊讶 欠揍 支持 很棒 愤怒 搞笑 恶心 不解