当前位置: 首页 > news >正文

建站小程序快速上线免费网络项目资源网

建站小程序快速上线,免费网络项目资源网,合肥百度推广排名优化,网站公司缺点文章目录 一、简介背景和概述 二、前端跨域解决方案Axios跨域CORS跨域 三、后端跨域解决方案反向代理服务器 四、Spring Cloud中的跨域解决方案Gateway网关的跨域配置 五、基于Vue和Spring Cloud的跨域整合实践**这两种配置只需配置一种即可生效#xff08;前端or后端#xf… 文章目录 一、简介背景和概述 二、前端跨域解决方案Axios跨域CORS跨域 三、后端跨域解决方案反向代理服务器 四、Spring Cloud中的跨域解决方案Gateway网关的跨域配置 五、基于Vue和Spring Cloud的跨域整合实践**这两种配置只需配置一种即可生效前端or后端**前端Vue项目配置后端Spring Cloud项目配置 六、总结 一、简介 背景和概述 在开发Spring Cloud和Vue的项目时涉及到前后端分离的情况下跨域成为一个常见的问题。本文将介绍跨域问题的背景并提供了一些解决方案。 二、前端跨域解决方案 Axios跨域 Axios是一个流行的基于Promise的HTTP客户端用于浏览器和Node.js。它可以使发送HTTP请求变得更加简单和高效。 一般前端使用axios进行http请求发送 import axios from axios // 利用axios对象的方法create,创建一个axios实例 const request axios.create({baseURL: http://localhost:8080,timeout: 3000000, //请求超时的时间withCredentials: true, // 打开withCredentials选项crossDomain: true, })// request 请求拦截器在发请求之前请求拦截器可以检测到 //config:配置对象里面有一个属性是headers请求头 request.interceptors.request.use(config {// 设置允许跨域的域名和请求方法config.headers[Access-Control-Allow-Origin] *;config.headers[Access-Control-Allow-Methods] GET, POST, PUT, DELETE;return config }, error {return Promise.reject(error) });// response 响应拦截器 request.interceptors.response.use(//响应成功回调函数response {let res response.data;return res;},//响应失败的回调函数error {Toast.clear()console.log(err error)return Promise.reject(error)} )// 对外暴露 export default requestCORS跨域 CORSCross-Origin Resource Sharing是一种跨域访问资源的标准可以通过在服务器端设置响应头来实现跨域请求。以下是CORS的示例代码 // 在后端Spring MVC控制器中配置CORS CrossOrigin RestController RequestMapping(/api) public class MyController {// 控制器的方法 }三、后端跨域解决方案 反向代理服务器 使用反向代理服务器可以将前端请求转发到后端服务器从而绕过跨域限制。以下是反向代理服务器的示例代码 这里nginx是要和你的前端服务在一台服务器上的然后你访问的时候通过前端的nginx进行转发的后端服务器才行 # NGINX反向代理配置示例 location /api {proxy_pass http://backend-server; }四、Spring Cloud中的跨域解决方案 Gateway网关的跨域配置 整个项目中只需要配置网关的配置文件即可其他地方前后端都不需要在进行更改 在Spring Cloud中使用Gateway作为网关时可以通过配置来处理跨域请求。以下是Gateway网关的跨域配置的示例代码 # 在Gateway网关中配置跨域 spring:cloud:gateway:globalcors:cors-configurations:[/**]:allowedOrigins: *allowedHeaders: *allowedMethods: *五、基于Vue和Spring Cloud的跨域整合实践 这两种配置只需配置一种即可生效前端or后端 前端Vue项目配置 在Vue项目中进行跨域配置确保前端请求能够访问后端服务。以下是前端Vue项目配置的示例代码 参考Vue官方文档 // 在Vue项目的配置文件中设置代理 module.exports {devServer:{proxy:{/getTest:{target:http://localhost:7734, //跨域的域名不需要写路径changeOrigin:true,//是否开启跨域// pathRewrite:{ //路径重写//// }}}} }后端Spring Cloud项目配置 这是一种方案还可以使用上面说的gateway配置文件的方式这两种二选一 在Spring Cloud项目中进行跨域配置确保后端能够处理前端请求。以下是后端Spring Cloud项目配置的示例代码 import com.alibaba.nacos.shaded.com.google.common.net.HttpHeaders; import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono;import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; // 在后端Spring Cloud-GateWay中配置跨域 Component Order(2) public class CorsResponseHeaderFilter implements GlobalFilter {private static final String ANY *;OverrideSuppressWarnings(serial)public MonoVoid filter(ServerWebExchange exchange, GatewayFilterChain chain) {return chain.filter(exchange).then(Mono.fromRunnable(() - {exchange.getResponse().getHeaders().entrySet().stream().filter(kv - (kv.getValue() ! null kv.getValue().size() 1)).filter(kv - (kv.getKey().equals(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)|| kv.getKey().equals(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)|| kv.getKey().equals(HttpHeaders.VARY))).forEach(kv -{// Vary只需要去重即可if(kv.getKey().equals(HttpHeaders.VARY)) {kv.setValue(kv.getValue().stream().distinct().collect(Collectors.toList()));} else{ListString value new ArrayList();if(kv.getValue().contains(ANY)){ //如果包含*则取*value.add(ANY);kv.setValue(value);}else{value.add(kv.getValue().get(0)); // 否则默认取第一个kv.setValue(value);}}});}));} }六、总结 跨域Cross-Origin Resource SharingCORS是一种浏览器的安全机制用于限制从一个源域、协议或端口加载的Web页面上的资源如何与来自其他源的资源进行交互。当一个 Web 应用程序尝试从一个源加载来自不同源的资源时浏览器将执行跨域检查。 跨域限制的目的是保护用户隐私和安全防止恶意网站通过跨域请求来获取用户的敏感信息。如果跨域是允许的那么一个恶意网站就可以在用户不知情的情况下获取到来自其他网站的数据这将带来安全风险。 在默认情况下浏览器会限制跨域请求例如从一个域例如example.com的页面发起的 AJAX 请求无法直接访问另一个域例如api.example.com的资源。这是因为浏览器执行了同源策略Same-Origin Policy即只允许在同一个域下加载资源。 为了解决跨域问题可以使用 CORS 机制来明确指示浏览器允许跨域请求。服务器可以在响应中添加一些特殊的头部如 “Access-Control-Allow-Origin”来指定允许访问的来源即允许跨域请求的网站。 需要注意的是跨域问题仅存在于浏览器环境中。如果是在服务器之间进行通信不受同源策略的限制可以通过其他方式如代理、反向代理来实现跨域请求。 总结而言跨域限制是为了保护用户隐私和安全防止恶意网站获取敏感信息。使用 CORS 机制可以显式指示浏览器允许跨域请求。
http://www.pierceye.com/news/975402/

相关文章:

  • c语言网站建设禅城网站开发
  • 宁波品牌网站制作哪家好太平阳电脑网网站模板
  • seo网站外链工具看设计比较好的网站
  • 济南道驰网站建设有限公司怎么样某网站网站的设计与实现
  • 服装印花图案设计网站设计一个网站要多久
  • ai怎么做自己的网站getpage wordpress使用详解
  • 龙岩做网站推广龙岗网站 建设深圳信科
  • 沈阳网站建设 网络服务广告公司首页
  • 旅游网站建设导航栏中国哪里正在大开发大建设
  • 哪能建设网站建设网站需要哪些流程图
  • 网站YYQQ建设o2o型网站
  • 给客户做网站 赚钱吗赣州省住房和城乡建设厅网站
  • 营销优化型网站怎么做手机app网页制作
  • 上海网站建设服wordpress友情链接排序
  • 沈阳市和平区网站建设编程课适合多大孩子学
  • 东阳网站优化懒人图库
  • 马关县网站建设专注营销型网站建设
  • 微信公众号公众平台太原seo关键词优化
  • 沈阳网站建设方案二级网站怎样被百度收录
  • 厦门数字引擎 怎么打不开网站youku网站开发技术
  • 中小企业网站建设论文郑州网站服务公司
  • 工信部网站备案验证码文化传媒网站封面
  • 境外做网站网站百度代运营
  • 南京学校网站建设策划手机网站默认全屏
  • 东莞公司网站策划万网买网站
  • 建筑网站视频大全做外汇网站卖判刑多少年
  • 手机网站菜单网页怎么做东莞网站优化方案
  • 公众号免费素材网站wordpress无法开始安装
  • 建设银行互联网网站首页网站备案 视频
  • 免费优化网站建设做app和网站哪个比较好用