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

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

相关推荐

  • 怎样恢复微信聊天记录?iPhone微信聊天记录恢复方法

      怎样恢复微信聊天记录?越来越多的聊天文件或者是聊天的信息都会通过手机端来进行传递,尤其是微信更加是我们生活中不可或缺的必要软件之一,那么微信的聊天记录被删除了应该怎么恢复呢?很多人都会上网去查询这样的方法,但是网上很多方法都十分的繁琐而且存在一定的安全隐患,那么有什么又安全又快速的能够让误删的微信聊天记录恢复回来呢?今天笔者就和大家分享能够快速的恢复的方…

    创业分享 2023-05-23
    159
  • 平凉庄浪:发放小额担保贷款扶持创业

      中国甘肃网12月6日讯 据甘肃经济日报报道 自今年10月份启动小额担保贷款业务以来,庄浪县已发放小额担保贷款6000万元,在小额贷款优惠政策的扶持下,庄浪县涌现出一大批创业带头人,他们在建筑、加工、餐饮、养殖、种植、电商等行业创办了900多个经济实体。   原标题:庄浪发放小额担保贷款扶持创业   今年以来,庄浪县通过简化审批手续,缩短审批时限,加强与金…

    创业分享 2023-05-27
    195
  • 专访卡比布中国区代理雨妈的创业故事

    (卡比布纸尿裤)   朋友的一番话可谓是“一语惊醒梦中人”,行动派的雨妈立即申请了淘宝店铺,并着手准备卡比布的代理事宜。“还记得那几年正值电子商务蓬勃发展时期,众多企业开始涌入线上销售,其中网店就是较为热门的渠道”,雨妈说:“我们就是运气好,赶上了第一波红利”。   因为宝宝与卡比布结下不解之缘 (卡比布纸尿裤)   雨妈是贵州婴乐树电子商务有限公司的负责人…

    创业分享 2023-05-13
    97
  • 天使轮,四家科技类创业公司正在融资

      启迪之星的几千家孵化、投资的企业中,有很多优质企业处在融资阶段,需要寻找认同他们事业的投资人。因此,启迪之星定期将有融资需求的企业,推荐出来,希望他们更快速的找到“创业伴侣”,一起在共同选择的事业上走的更远。   本期推荐的4家企业,他们均处于种子、天使轮阶段。   【 机器之声】   核心竞争力   机器之声研发的精灵果果儿童光感可穿戴产品可检测儿童全…

    创业分享 2023-06-03
    211
  • 企业如何监管员工手机微信聊天记录

      A5创业项目春季招商 好项目招代理无忧   很多企业在进行微营销的时候,都希望能够监管员工手机微信,规范员工聊天行为,避免出现员工飞单以及泄漏客户资料的情况,希望对员工的手机做到全方位监管,很多企业使用灵灵狗系统监管员工的微信聊天记录。   奥创灵灵狗风控系统是奥创软件研究院针对微营销团队员工绩效统计、行为规范而开发的一款微信营销风控及管理系统。   灵…

    创业分享 2023-05-19
    145

发表回复

登录后才能评论

联系我们

在线咨询: QQ交谈

邮件:362039258@qq.com

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