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

浏览器判断是跨域请求会在请求头上添加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

相关推荐

  • 从全职妈妈到创业达人,看年糕妈妈李丹阳如何华丽转身

          每一条全新的人生道路,都没有人知道它是好是坏,不过年糕妈妈李丹阳却凭借自己的执着和努力,在新的道路上完成了自己的人生蜕变。       在2014年,微信公众号早已被人们接受和习惯,微信公众号在母婴领域也已是一片红海。也同样是在这一年的四月份,李丹…

    创业分享 2023-05-29
    70
  • 新浪微博副总裁曹增辉:新浪微博二次崛起的5大运营心得

      品牌推广就用这几招,七月活动立减500-1000元   很多人都觉得微博已经完蛋了,为什么还有人在用?是什么人在用?   编者按:本文来自微信公众号“混沌大学”(ID:dfscx2014),曹增辉,新浪微博副总裁;36氪经授权发布。   关于新浪微博,我先给大家看三个简单的数据。   NO.1:每天的活跃用户是1.54亿(DAU);   NO.2:每个月…

    创业分享 2023-05-22
    179
  • 深交所2018年重点工作:优化多层次板块体系 更好服务创业创新

    关注同花顺财经(ths518),获取更多机会   e公司讯,12月27日,深交所召开第四届理事会第三次会议。会议研究了2018年深交所重点工作:优化深市多层次板块体系,全面深化市场改革,更好服务创业创新,更好支持新经济发展;稳妥推出股票ETF期权试点,积极开展REITs等产品创新,服务国家住房租赁政策落地;打好防范化解风险攻坚战,牢牢守住不发生系统性金融风险…

    创业分享 2023-05-20
    73
  • 搭“金桥”,这个大赛畅通融资有一套 ——福州市创新创业大赛新闻观察

    2019年福州市创新创业大赛总决赛参赛企业路演现场  受访者供图      科技日报记者 谢开飞 通讯员 温锦胜 曹文海     9月的福州,暑意未褪,和天气一样炎热的还有创业者的热情。日前,2019年福州市创新创业大赛总决赛落下帷幕,中电合创、中联智创、摩尔软件等7家企业从23支队伍中脱颖而出,赢得第八届中国创新创业大赛(福建赛区)暨第七届福建创新创业大赛…

    创业分享 2023-05-12
    85
  • 青年创业导师何涛助300多人走上创业路

      “我曾是创业路上的追梦人,更愿成为大学生创业的助梦者,尽我所能去帮助、关爱需要帮助的人们,不断地回报社会。”何涛说。   2010年夏季,从南昌大学食品专业毕业的何涛并没有按部就班地四处投简历、找工作,而是在老师的鼓励下,加入了创业大军。回忆起踌躇满志的首次创业,他依然记忆犹新。“从自信满满到灰头土脸,只经历了10个月的时间。”何涛说,“大学毕业后我和另…

    创业分享 2023-05-18
    52

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信