Vue Ajax(vue-resource)
Vue 自定义过滤器 

Vue 跨域

在 Vue 项目中处理跨域请求通常涉及到以下几种方式:


方法一:使用代理配置

Vue CLI 提供了一个 vue.config.js 文件,可以用来配置代理。通过配置代理,可以解决开发环境中的跨域问题。

在 vue.config.js 中添加如下配置:

module.exports = {
  devServer: {
    proxy: {
      '/api': {
        target: 'http://example.com',  // 修改为实际后端服务的地址
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    }
  }
}

这段配置的含义是:当在 Vue 的代码中发起以 /api 开头的请求时,会被代理到 http://example.com,并且在请求头中加上 Origin: http://localhost:8080(假设你的 Vue 开发服务器运行在 http://localhost:8080)。


方法二:使用 CORS(后端配置)

跨域资源共享(CORS)是一种通过 HTTP 头来告诉浏览器是否允许跨域请求的机制。如果你有后端的控制权,可以通过后端服务来配置 CORS。具体做法取决于后端的技术栈,例如在 Express 框架中,可以这样配置:

const express = require('express');
const app = express();
app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

这段代码允许所有来源 (*) 的请求访问你的后端服务。


方法三:JSONP(仅限 GET 请求)

JSONP 是一种利用 <script> 标签不受同源策略限制的特性来实现跨域请求的方法。但是 JSONP 只支持 GET 请求,并且要求后端服务支持返回 JSONP 格式的数据。

在 Vue 中使用 JSONP 可以通过库如 jsonp 或 axios-jsonp 实现。


方法四:WebSocket

WebSocket 是一种双向通信协议,不受同源策略的限制。如果你的应用需要实时双向通信,可以考虑使用 WebSocket。


注意事项

  • 安全性考虑: 需要确保跨域请求不会导致安全漏洞。

  • 开发环境和生产环境的配置可能不同。


选择合适的方式取决于你的具体需求和开发环境。通常情况下,使用代理是在开发阶段最常用的解决方案。