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

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

相关推荐

  • 第一创业:连续三日跌停 明起停牌核查

    第一创业:连续三日跌停 明起停牌核查 时报快讯    05月15日 19:55    证券时报网      证券时报网()05月15日讯 连续三个交易日跌停的第一创业(002797)5月15日晚披露股价异动公告,公司股票将于5月16日起停牌,就股票交易异常波动情况进行必…

    创业分享 2023-05-23
    107
  • 一位大学教师的成果转化“变奏曲”

    转自:科创中国 作者:陈彬 过去20年间,华北电力大学(以下简称华电)教授曾德良所在的团队先后创办过两家公司,它们的名字中都有一个相同的词——华电。 原因很简单,自上世纪末从华电毕业后,他便一直留校任教至今。这两家公司也是基于他们团队科研成果转化的结果。 “我们团队彼此合作了30年,一直都没散过。”面对《中国科学报》的采访,曾德良的话语中颇有些骄傲。 然而,…

    2023-05-10
    79
  • 4号台风妮妲来袭 广东台湾福建最“招风”

      既非最多 也非最强   而从1949-2015年的数据来看,8月登陆我国的台风共有122个,仅次于7月的123个;在强度方面,平均登陆风速为34.1米/秒,仅次于9月的34.3米/秒。   【4号台风妮妲来袭】8月伊始,台风“妮妲”来袭。气象数据统计显示,8月份登陆我国的台风具有数量第二多、强度第二强、登陆面广、路径多样的特点。   8月份是台风登陆地点…

    2023-05-30
    88
  • 洗车人家全民创业节,超值福利送不停

      当下是一个“大众创业、万众创新”的时代,各企业为了积极响应国家政策的号召,举办了主题不同、意义不同的一些创业节、创业大赛之类的活动,而这些活动中能真正帮到创业者的少之又少,导致越来越多的人不愿意再参加。但最近举办的一个创业节却是万千创业者万万不可错过的,那就是洗车人家全民创业节。   据了解,此次的创业节主题为:蓝创全民创业节,跨界打劫新模式,让汽车服务…

    2023-05-22
    91
  • 感觉身体被掏空的创业团队 百度联盟有话要说

    [责任编辑:赵刚]   然而,长时间的加班对于员工们来说是凄苦的,有不少人因为长时间的加班,身体、精神都处于疲惫与紧张的状态,也有一些人早就已经不记得上一次睡过一个好觉是在什么时候,还有一部分人倒在自己的岗位上,留下一些永远也加不完的班。但是对于创业公司而言,加班似乎不可避免。面对激烈的市场竞争,效率就是生命,能够今天干完的活就绝对不能让它拖到明天,加之创业…

    2023-05-30
    118

发表回复

登录后才能评论

联系我们

在线咨询: QQ交谈

邮件:362039258@qq.com

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