浏览器的跨域问题该怎么解决?

浏览器判断是跨域请求会在请求头上添加origin,表示这个请求来源哪里。比如:

Plaintext GET / HTTP/1.1 Origin: http://localhost:8601

服务器收到请求判断这个Origin是否允许跨域,如果允许则在响应头中说明允许该来源的跨域请求,如下:

Plaintext Access-Control-Allow-Origin:http://localhost:8601

如果允许任何域名来源的跨域请求,则响应如下:

Plaintext Access-Control-Allow-Origin:*

解决跨域的方法:

1、JSONP

通过script标签的src属性进行跨域请求,如果服务端要响应内容则首先读取请求参数callback的值,callback是一个回调函数的名称,服务端读取callback的值后将响应内容通过调用callback函数的方式告诉请求方。如下图:

浏览器的跨域问题该怎么解决?

2、添加响应头

服务端在响应头添加

Access-Control-Allow-Origin:

3、通过nginx代理跨域

由于服务端之间没有跨域,浏览器通过nginx去访问跨域地址。

浏览器的跨域问题该怎么解决?

1)浏览器先访问

http://192.168.101.10:8601 nginx提供的地址,进入页面

2)此页面要跨域访问

http://192.168.101.11:8601 ,不能直接跨域访问http://www.baidu.com:8601 ,而是访问nginx的一个同源地址,比如:

http://192.168.101.11:8601/api ,通过

http://192.168.101.11:8601/api 的代理去访问http://www.baidu.com:8601。

这样就实现了跨域访问。

浏览器到

http://192.168.101.11:8601/api 没有跨域

nginx到http://www.baidu.com:8601通过服务端通信,没有跨域。

我们准备使用方案2解决跨域问题。在内容管理的api工程config包下编写GlobalCorsConfig.java,

或直接从课程资料/项目工程下拷贝,

代码如下:

Java package com.xuecheng.system.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; /** * @description 跨域过虑器 * @author Mr.M * @date 2022/9/7 11:04 * @version 1.0 */ @Configuration public class GlobalCorsConfig { /** * 允许跨域调用的过滤器 */ @Bean public CorsFilter corsFilter() { CorsConfiguration config = new CorsConfiguration(); //允许白名单域名进行跨域调用 config.addAllowedOrigin(“*”); //允许跨越发送cookie config.setAllowCredentials(true); //放行全部原始头信息 config.addAllowedHeader(“*”); //允许所有请求方法跨域调用 config.addAllowedMethod(“*”); UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration(“/**”, config); return new CorsFilter(source); } }

此配置类实现了跨域过虑器,在响应头添加

Access-Control-Allow-Origin。

重启系统管理服务,前端工程可以正常进入http://localhost:8601,观察浏览器记录,成功解决跨域。

浏览器的跨域问题该怎么解决?

免责声明:文章内容来自互联网,本站仅作为分享,不对其真实性负责,如有侵权等情况,请与本站联系删除。
转载请注明出处:浏览器的跨域问题该怎么解决? https://www.dachanpin.com/a/cyfx/10770.html

(0)
上一篇 2023-05-12 02:15:05
下一篇 2023-05-12 02:16:18

相关推荐

  • 如何寻找创业资金?教你六大方法

      在谈到创业问题的时候,很多人都会有种力不从心的感觉,创业资金不足是很常见却也很困难的问题,年轻人创业很有热情,但仅有热情是远远不够的,资金是创业的基本条件,如何有效筹措资金,利用资金呢?今天就来学习一些寻找资金的方法吧。   1、政府提供的政策性扶持资金   事例:章教授是浙江工业大学计算机专业的老师,但她并不甘心于仅搞教学,她十分希望办个软件公司,发挥…

    创业分享 2023-05-21
    6900
  • 长宁区举行汇智虹桥沙龙 分享新侨创新创业经验

    新民晚报讯 (记者 袁玮)为进一步推动新侨“双创”服务体系建设,涵养新兴华侨华人创业者资源,给在沪创新创业的华侨华人创业者、企业家、留学生和专业人士等提供专业政策服务,由致公党市委海外联络委员会、上海市华侨事务中心、长宁区人社局联合主办,长宁区人才服务中心、上海工程技术大学科技园承办的汇智虹桥——“新侨创新创业经验分享沙龙”活动今天举办。 图说:汇智虹桥——…

    2023-05-13
    10300
  • 从浙江山区小县到全球市场 这对父子如何接力创业?

      浙江在线12月13日讯(浙江在线记者 袁华明)和三花控股集团张道才、张亚波父子对话,几乎离不开“三朵花”的话题。在众多的场合里,这对父子也都会从不同角度阐释这“三朵花”的企业文化,可以说,“三朵花”已经成为三花控股集团沁入骨髓的企业文化。   父子两代,接力创业30多年,从浙江的一个山区小县创业生长,到布局全球市场的运筹帷幄,几乎是改革开放以来浙商这个群…

    创业分享 2023-05-20
    7100
  • 从项目创始人到投资人,白杨谈创业企业股权分配十大雷区

        创业就像接力赛,需要分阶段有计划地持续招募人才。股权是吸引人才的重要手段。因此,创业团队最初分配股权时,应该有意识地预留一部分股权放入股权池,为持续招募人才开放通道。     等到公司启动融资,发现股权结构不对,想对股权架构进行调整时,发现微调早期投资人股权就是动人家价值三五百万的蛋糕,是活生生“烤”验人性。人…

    创业分享 2023-05-14
    4000
  • 德阳举办首届“千里眼”创业大赛

    12成德绵新闻2017年09月11日 返回目录   据悉,此次创业大赛共设“大学生创业组”“返乡下乡创业组”和“创业创富组”三个组别,共有157组选手参加,最后32组选手进入决赛。优胜者将一起晋级四川省第一届“天府杯”创业大赛总决赛。 四川日报网新闻热线:028-86968903    四川日报网商业合作:028-86…

    创业分享 2023-05-21
    4600

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信