如何解决浏览器跨域问题?

浏览器判断是跨域请求会在请求头上添加origin,表示这个请求来源哪里。比如:

PlaintextGET / HTTP/1.1Origin: http://localhost:8601

服务器收到请求判断这个Origin是否允许跨域,如果允许则在响应头中说明允许该来源的跨域请求,如下:

PlaintextAccess-Control-Allow-Origin:http://localhost:8601

如果允许任何域名来源的跨域请求,则响应如下:

PlaintextAccess-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,

或直接从课程资料/项目工程下拷贝,

代码如下:

Javapackage 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.cwhello.com/277243.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
黑马程序员黑马程序员订阅用户
上一篇 2023年6月17日 07:26
下一篇 2023年6月17日 08:30

相关推荐

  • 小编教你xhtml如何下载。

    要下载XHTML,您可以通过以下几个步骤进行: (图片来源网络,侵删) 1、了解XHTML: XHTML是一种标记语言,它是HTML的一个更严格和纯净的版本,XHTML遵循XML的规范,要求文档必须是正确标记且格式良好的。 2、查找…

    2024年6月26日
    04
  • 教你在SEO优化中关键词排名下降后如何解决。

    做为网站的站长,相信有很多的新手站长都会时时刻刻关注自己网站的排名,只要自己有空就会找开站长工具看看自己网站的排名有没有变化。其实这种心态我也是可以理解的,毕竟自己亲手做的网站,亲手优化的网站,也希…

    2023年6月27日
    08
  • 怎样处理网站建设中浏览器兼容问题。

    在网站开发过程中,无论是图片、文字信息、格局排版都会受到浏览器的兼容问题,因为不同浏览器所兼容的开发代码有所不同,所以可能在开发出来的网站,换个浏览器就会显示不全,出现排版混乱的界面,那么今天小编就…

    2022年10月28日
    019
  • 我来分享 超级推荐流量不稳定如何解决。

    我们的淘宝店铺开了之后,重心工作就是去做超级推荐了,那么如果超级推荐的流量不稳定的话我们要如何去解决这个事情呢?估计很多人不知道如何去做,下面就来详细说说这个技巧!一、流量不稳定怎么办?1.推荐流量是RTB…

    2023年10月22日
    03
  • 我来教你如何解决搜索引擎误判文章原创问题。

    要想解决文章原创度的文章,首先一定要大概了解,搜索引擎是怎么判断这个原创度的,不然哭天喊地没有用呀,得出研究有效的几种方法:1、蜘蛛爬取时间:这可能是胡说八道,但必须说,蜘蛛不一定会在文章发布后先抓取…

    2023年6月23日
    02
  • 说说淘宝开店货源和物流问题分别如何解决?。

    淘宝开店货源和物流。大家都知道,想在淘宝上开设店铺,现在已经变得非常简单了,只要你注册账号、上传宝贝,了解一些专业淘宝推广知识就差不多了,难点就在于淘宝开店货源和物流的问题。这两点,一个是开设店铺的…

    2023年11月4日
    06
  • 教你网站建设中响应速度慢如何解决。

    对于网站建设,很多用户关心网站反映速度,即点击网页,网页的打开速度和时间,甚至把网站的响应速度来判断一个网站的好坏。这想法虽然不全面,但是有一定的道理。比如,当你遇到感兴趣的标题,想打开网页去浏览里…

    2023年6月12日
    01
  • uc浏览器关键词排名如何优化?

    你用过uc浏览器吗?你通过uc浏览器做过推广吗?在uc的关键词排名很靠后吧?还在为你的uc关键词排名优化的问题烦恼吗?现在就让我来给你介绍一下一些方法吧。 uc浏览器 UC浏览器(UC Browser)是UC Mobile Limited在2004年…

    2022年5月23日
    0714

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息