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

浏览器判断是跨域请求会在请求头上添加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)
Apache软件安装与配置【图文教程】
上一篇 2023-05-12 02:15:05
软件测试模型有几种?这4中软件测试模型你都知道吗
下一篇 2023-05-12 02:16:18

相关推荐

  • 习近平会见俄罗斯国家杜马主席纳雷什金

     新华社北京5月5日电(记者刘华)国家主席习近平5日下午在人民大会堂会见了俄罗斯国家杜马主席纳雷什金。   习近平首先请纳雷什金转达对普京总统的诚挚问候。他说,中俄全面战略协作伙伴关系的高水平发展符合两国人民共同愿望,顺应两国发展振兴需要,合乎世界和平、发展、合作、共赢的历史潮流。我同普京总统达成共识,下一阶段发展中俄关系的中心任务,是把两国高水平的政治关系…

    创业分享 2023-06-01
  • 苏州金鸡湖台青创业园启动

    中国江苏网讯 18日,苏州金鸡湖台青创业园启动仪式在苏州工业园区人工智能产业园举行。 苏州金鸡湖台青创业园是专门为台湾青年打造的创业孵化基地及两岸科技文化交流中心,分为孵化区及创业加速区,空间涵盖创业工位、办公室、共享会议室、路演大厅等,可以提供办公、会议、洽谈、路演、培训等创业服务。园区还提供创业导师辅导、政策咨询、工商财税咨询、投融资对接等创业服务。 金…

    创业分享 2023-05-13
  • 【新春走基层】绿色通道方便创业

        原标题:绿色通道方便创业     2月22日一早,曲靖市政务服务大厅内人来人往,十分繁忙。工商注册登记窗口仅一个上午就发出了10余本营业执照。     作为联系服务企业和群众的前沿窗口,曲靖市工商局企业注册科副科长马靖云参与见证了改…

    创业分享 2023-05-13
  • 山东高教改革:允许学生休学创业修业年限最长可延至8年

    郭建磊在回答记者关于如何增强大学生的创新创业意识和实践能力的问题时表示,主要措施有以下几个方面: 修订人才培养方案,提高实践课比重。《意见》指出,围绕创新创业人才培养要求,修订完善人才培养方案,科学合理设置创新创业必修课和选修课,纳入学分管理,使课程体系、课程标准、课程内容与学科发展前沿、行业标准对接,促进专业教育与创新创业教育有机融合。提高实践课比重,工农…

    创业分享 2023-06-01
  • 创业路道阻且长 提防“假投资人”埋下的坑

    这样的“刘青云君”不知道还有多少,有些可能还活跃在各大饭局或者与创业者见面的路上。和上述骗财骗时间的人一样,创业者要提防这些坑。毕竟,珍爱生命,远离假投资人。 “我当时问他,是否修改BP就能保证过会得到投资,”曾明表示,该投资经理第一次是信心满满表示可以。当曾明再问第二次第三次的时候,投资经理开始语焉不详,表示并不能够保证一定会投资。 结果,这样的刘青云君是…

    创业分享 2023-05-29

发表回复

登录后才能评论

联系我们

在线咨询: QQ交谈

邮件:362039258@qq.com

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