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

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

相关推荐

  • 棋牌手游成创业热点 闲来防外挂对抗激烈竞争

    2017年地方棋牌游戏成为新风口,游戏公司、创业团队、资本团队纷纷登场亮相,这一年被业界称为“棋牌元年”。 2018年,地方棋牌游戏市场的竞争无疑会更加激烈。在竞争激烈的环境下,棋牌手游公司将如何应对?首先就是要解决… 2017年地方棋牌游戏成为新风口,游戏公司、创业团队、资本团队纷纷登场亮相,这一年被业界称为“棋牌元年”。 2018年,地方棋牌…

    创业分享 2023-05-20
    125
  • 【创业资讯】红色政权为什么能够存在?谈小公司的创新创业生存空

    还可以参考一下Google在知识图谱技术上的投入。2006年Google就开始投入做这个方向,一直摸不清楚该怎么做,先后n个失败。一直到了2010年收购Metaweb (Freebase)才开始明白知识系统建模的要点。以后大批招本领域的牛人,又消化了两年才推出知识图谱。大公司不去做并不是因为那些技术大,而往往恰恰是因为那些技术小。小规模和大规模技术在文化上就…

    创业分享 2023-05-13
    151
  • 萌奇文化:提供文化衍生服务+整合营销,已开设线下自营连锁旗舰店

    公司:深圳市萌奇文化发展有限公司 萌奇文化主要面向16岁-30岁的人群市场,这类人群收互联网影响较深,也是衍生品的消费主力。目前,萌奇文化已于优酷、光线传媒等文创平台建立合作关系,获得了“蜡笔小新”、“Emoji”、“tokidoki”、“booto”、“魔鬼猫(猎云网曾对此动漫IP进行报道)”、“鬼马咚咚”等30多个文化品牌授权。另外也与森麦、大麦等十几个…

    创业分享 2023-05-24
    175
  • 多方面证明,泡否吃鸡加盟项目,确是餐饮创业之首选

      不同于其他餐饮合作项目对外宣传时,谈到美食制作,只讲品质,不讲效率。泡否吃鸡加盟项目,是品质与效率两者都会提及。原因是,泡否吃鸡加盟项目所为创业者提供的制餐设备,全都是自主研发。而在设备与美食产品就制作契合度较高的境况下,消费者下单后能更早拿到美食产品。这对创业者,意味着店面的美食制作效率将远高于行业平均水平。即在店面经营时间一定的情况下,选择泡否吃鸡加…

    创业分享 2023-05-14
    162
  • 全球最大创业园区即将开业 拟以乔布斯命名周围街道

    北京时间12月14日凌晨消息,随着位于法国巴黎的全球最大创业园区即将开业,巴黎13区区长顾梅(Jér?me Coumet)日前提议:用科技界知名人士的名字重新命名周围的街道。 这座大型的创业园区名为“Station F”,由电信企业家泽维尔·尼尔(Xavier Niel)投资兴建,计划于明年4月开业。 这本来是一个相当不错的主意,但在顾梅列出的著名科技人士名…

    创业分享 2023-05-26
    98

发表回复

登录后才能评论

联系我们

在线咨询: QQ交谈

邮件:362039258@qq.com

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