项目里面怎么解决跨域的?

简介: 项目里解决跨域的方法

一.前端配置跨域

proxy解决跨域

在vue.config.js中通过proxy devServer中配置反向代理。

devServer: {
port: port,
open: true,
overlay: {
warnings: false,
errors: true    },
// 配置反向代理proxy: {
// 当地址中有/api的时候会触发代理机制'/api': {
target: 'http://ihrm-java.itheima.net/', // 要代理的服务器地址  这里不用写 apichangeOrigin: true// 是否跨域// 重写路径// pathRewrite: {}      }
    }
  },

Nginx反向代理

在nginx.conf 的配置

server {
listen8094; #监听端口server_namelocalhost; ##charset koi8-r;#access_log  logs/host.access.log  main;location/ {
roothtml;#文件根目录indexindex.html ;#默认起始页      }

jsonp解决跨域

Jsonp 原理:动态获取script标签   缺点:只适用于get请求。

二.后端解决跨域

cors解决跨域(后端常用 java)

importorg.springframework.context.annotation.Bean;
importorg.springframework.context.annotation.Configuration;
importorg.springframework.web.cors.CorsConfiguration;
importorg.springframework.web.cors.UrlBasedCorsConfigurationSource;
importorg.springframework.web.filter.CorsFilter;
@ConfigurationpublicclassGlobalCorsConfig {
@BeanpublicCorsFiltercorsFilter() {
//1.添加CORS配置信息CorsConfigurationconfig=newCorsConfiguration();
//1) 允许的域,不要写*,否则cookie就无法使用了config.addAllowedOrigin("http://manage.leyou.com");
config.addAllowedOrigin("http://www.leyou.com");
//2) 是否发送Cookie信息config.setAllowCredentials(true);
//3) 允许的请求方式config.addAllowedMethod("OPTIONS");
config.addAllowedMethod("HEAD");
config.addAllowedMethod("GET");
config.addAllowedMethod("PUT");
config.addAllowedMethod("POST");
config.addAllowedMethod("DELETE");
config.addAllowedMethod("PATCH");
// 4)允许的头信息config.addAllowedHeader("*");
//2.添加映射路径,我们拦截一切请求UrlBasedCorsConfigurationSourceconfigSource=newUrlBasedCorsConfigurationSource();
configSource.registerCorsConfiguration("/**", config);
//3.返回新的CorsFilter.returnnewCorsFilter(configSource);
    }
}


相关文章
|
1月前
|
JSON 缓存 JavaScript
如何解决跨域问题?
除了上述方法外,还有一些其他的跨域解决方案,如`postMessage` API等,可以根据具体的项目需求和场景选择合适的方法来解决跨域问题。
|
1月前
|
安全 JavaScript 前端开发
跨域问题如何解决
跨域问题是指浏览器同源策略限制了不同域名之间的资源访问。解决方法包括:1. CORS(跨域资源共享):服务器设置Access-Control-Allow-Origin响应头;2. JSONP:利用script标签不受同源策略限制的特点;3. 代理服务器:通过后端代理转发请求。
|
2月前
|
安全 前端开发 JavaScript
什么是跨域?为什么会产生跨域?怎么解决跨域?
什么是跨域?为什么会产生跨域?怎么解决跨域?
395 0
|
4月前
|
前端开发 JavaScript 应用服务中间件
说一说跨域和如何解决
说一说跨域和如何解决
|
7月前
|
JavaScript 安全 前端开发
js开发:请解释什么是跨域请求(CORS),以及如何解决跨域问题。
CORS是一种W3C标准,用于解决浏览器同源策略导致的跨域数据访问限制。它通过服务器在HTTP响应头添加标志允许特定源进行跨域请求。简单请求无需预检,而预检请求(OPTIONS)用于询问服务器是否接受非简单请求。服务器端配置响应头如`Access-Control-Allow-Origin`等实现CORS策略,客户端JavaScript则正常发起请求。若配置不当,浏览器将阻止跨域访问,保障安全。
97 2
Hertz踩坑记录,Hertz-CORS跨域问题
字节跳动开源框架Hertz,可能存在的CORS的跨域问题
|
JSON 缓存 安全
跨域时怎么处理 cookie?
跨域时怎么处理 cookie?
|
存储 前端开发 JavaScript