何谓跨域?这是浏览器本身特有的同源策略。同源,是指请求的发送方和请求接收方必须在协议、域名和端口上保持高度一致,否则,就会出现请求成功,但无法成功拿到响应结果的现象。但实际开发中,各种复杂业务的交织难免会有这种跨域请求,为此帝都的雁为大家盘点汇总一下,常见的跨域请求解决方案。

从解决方案的思想上来区分,有三种:允许请求跨域访问资源、保证请求发起者和请求接收者同源、或后端请求中转。

一、允许请求跨域访问资源

需要在请求头中设置运行跨域的参数。

1. 针对特定请求设置允许跨域

// 设置允许跨域的域名,*表示允许所有

response.setHeader("Access-Control-Allow-Origin", "*");

这种方法较为繁琐,如果每个请求都需要跨域,那么代码就会变得冗余臃肿。

2. springboot2.0全局配置

全局统一配置,集中管理。

3. nginx统一配置

location / {

add_header Access-Control-Allow-Origin *;

}

二、保证请求发起者和请求接收者同源

想办法通过代理或者网关的方式统一访问地址

1. nginx统一约定域名和端口

配置nginx的策略,使用项目名称去匹配对应的服务,统一域名和端口号,nginx反向代理查询。

2. 微服务网关统一配置

Zuul通过与Eureka的整合,实现了对服务实例的自动化维护,在使用服务路由配置时,不需要向传统路由配置方式那样去指定具体的服务实例地址,只需要通过Ant模式配置文件参数即可。

三、后端请求中转

1. HttpClient转发

HttpClient不会出现跨域问题,所以可以通过Ajax请求本地方法,方法内部调用HttpClient访问其他服务。这种方法也会造成代码的冗余问题。

四、JSONP

将Ajax的dataType改为:jsonp,并设置回调函数,底层通过拼接随机参数发送Get请求。原理是仿真script标签的方式取请求数据。

欢迎大家和帝都的雁积极互动,头脑交流会比个人埋头苦学更有效!共勉!

CSDN:https://blog.csdn.net/yxh13521338301

nginx 允许跨域_细谈跨域请求的桥梁相关推荐

  1. 测试是否支持跨域_浅谈跨域威胁与安全

    WEB前端中最常见的两种安全风险,XSS与CSRF,XSS,即跨站脚本攻击.CSRF即跨站请求伪造,两者属于跨域安全攻击,对于常见的XSS以及CSRF在此不多谈论,仅谈论一些不太常见的跨域技术以及安全 ...

  2. axios 跨域_当遇到跨域开发时,我们如何处理好前后端配置和请求库封装

    我们知道很多大型项目都或多或少的采用跨域的模式开发, 以达到服务和资源的解耦和高效利用. 在大前端盛行的今天更为如此, 前端工程师可以通过nodejs或者Nginx轻松搭建起web服务器.这个时候我们 ...

  3. java redirect 跨域_如何解决跨域重定向携带参数的问题?不使用将参数拼接在重定向url末尾的方式...

    如何解决跨域重定向携带参数的问题?不使用将参数拼接在重定向url末尾的方式 需求,项目A在服务器A上,需要重定向到服务器B上项目B,并且需要携带参数,参数对用户不可见,所以不可以将参数拼接在重定向ur ...

  4. java redirect 跨域_碰到了跨域问题, Redirect is not allowed for a preflight request

    liubx: 后端配置: @Configuration public class CorsConfigure implements WebMvcConfigurer { @Override publi ...

  5. java 匿名类 实现接口_细谈 Java 匿名内部类 【分别 使用 接口 和 抽象类实现】...

    1.前言 匿名内部类是什么东西? 没有名字的内部类就是匿名内部类. 什么场景使用? 匿名内部类适合创建那种只需要一次使用的类. 这是个很有用的东西,可想而知,如果不使用匿名内部类,哪些只需要使用一次的 ...

  6. CORS 请求未能成功_当遇到跨域开发时, 我们如何处理好前后端配置和请求库封装(koa/axios版)...

    我们知道很多大型项目都或多或少的采用跨域的模式开发, 以达到服务和资源的解耦和高效利用. 在大前端盛行的今天更为如此, 前端工程师可以通过nodejs或者Nginx轻松搭建起web服务器.这个时候我们 ...

  7. html 跨域_常见跨域解决方案以及Ocelot 跨域配置

    常见跨域解决方案以及Ocelot 跨域配置 Intro 我们在使用前后端分离的模式进行开发的时候,如果前端项目和api项目不是一个域名下往往会有跨域问题.今天来介绍一下我们在Ocelot网关配置的跨域 ...

  8. iis 跨域_织梦会员登录二级域名不能跨域

    创业前,很多困难你都不会把它认为是困难,当它突然成为你的困难时,很多人会承受不了压力,就放弃了,这样的人一定是不能成功.解决方法 打开 includededeajax2.js 找到 DedeXHTTP ...

  9. webmvcconfigurer配置跨域_为什么加了 Spring Security 会导致 Spring Boot 跨域失效呢?...

    点击上方 IT牧场 ,选择 置顶或者星标 技术干货每日送达 作者:欧阳我去 链接:https://segmentfault.com/a/1190000019485883 作为一个后端开发,我们经常遇到 ...

最新文章

  1. Calabash探索3-Calabash进阶
  2. c#_Array.Sort()
  3. C语言数据结构(大话数据结构——笔记3)第五章:串(字符串)
  4. DigSci科学数据挖掘大赛-亚军方案分享
  5. 2022年4月8日体检
  6. amazeui学习笔记--css(布局相关3)--辅助类Utility
  7. Angular Universal 的演进历史
  8. spring boot中打包插件spring-boot-maven-plugin和maven-jar-plugin的关联
  9. java 不生成文件下载_java 下载文件时怎么避免在服务器上生成文件
  10. cas内外网同时访问_科普:CAS 和 ABA
  11. php 内容采集_php开发工程师和大数据开发工程师有什么区别
  12. 袁春风 计算机组成原理 chap4,精品计算机组成原理 [袁春风]chap4homework.pdf
  13. Edraw Office Viewer Component
  14. 智能优化算法——遗传算法原理(附代码)
  15. Roberts算子边缘检测原理及实现
  16. 数字逻辑:多级门电路
  17. 用Java写Flybird游戏
  18. SWS_BICUBIC未声明的标识符解决方法
  19. Excel上传导致系统卡顿的原因分析
  20. 征途服务器修改,特色修改之(国家任务篇)

热门文章

  1. 第五届[2013年]全国大学生数学竞赛[数学类]试题六参考解答
  2. 前端服务器OWA 访问显示异常最佳解决方案
  3. .NET设计模式(19):观察者模式(Observer Pattern)
  4. dubbo提供者主配置文件application.properties
  5. APICloud开发者进阶之路 | 超级实用技巧
  6. 持续集成之 Jenkins 钉钉通知(八)
  7. Android开发中adb命令的常用方法
  8. 【产品环境】使用ELK搭建日志系统
  9. HDU 1618 Oulipo KMP解决问题的方法
  10. 【转】Java 内存模型及GC原理