Vue.js前端框架解决跨域问题

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。Vue.js前端框架解决跨域问题,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

Vue.js前端框架解决跨域问题

1.使用代理 :

在vue.config.js文件中配置代理,将请求发送到与前端同域的服务器,再由服务器发送到目标地址。这种方法需要后端人员协助设置。

这样,在发送请求时,只需要将请求地址设置为 /api 开头的地址即可。例如:
module.exports = {
  devServer: {
    proxy: {
      '/api': {
        target: 'http://localhost:3000', // 后端服务地址
        changeOrigin: true,
        pathRewrite: {
          '/api': ''
        }
      }
    }
  }
}

2.使用JSONP方式发送跨域请求:

使用JSONP方式发送跨域请求,通过在前端动态创建一个script标签,并将地址设置为目标地址,再在目标地址返回的js中调用前端定义的回调函数,以实现跨域请求。
export function getData () {
  const url = 'http://example.com/data?callback=getDataCallback'
  return new Promise((resolve, reject) => {
    window.getDataCallback = function (data) {
      resolve(data)
    }
    const script = document.createElement('script')
    script.src = url
    document.body.appendChild(script)
  })
}

3.CORS:

 在后端接口中添加CORS(跨域资源共享)头部信息,允许前端跨域访问。
// Node.js
app.all('*', (req, res, next) => {
  res.header("Access-Control-Allow-Origin", "*")
  res.header("Access-Control-Allow-Headers", "X-Requested-With,Content-Type")
  res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS")
  next()
})

4.使用第三方库:

使用第三方库如axios、fetch等发送跨域请求,这些库已经封装了跨域处理的方法。例如在axios中,可以通过设置withCredentials: true开启跨域请求。
import axios from 'axios'
axios.defaults.withCredentials = true
export function getData () {
  return axios.get('http://example.com/data')
    .then(res => res.data)
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/188548.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!