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

2023-06-19 0 657

Plaintext GET / HTTP/1.1 Origin: http://localhost:8601

伺服器接到允诺推论那个

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,

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

代码如下表所示:

Javapackage com.xuecheng.system.config; import org.springframework.context.annotation.Bean; importorg.springframework.context.annotation.Configuration;import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; importorg.springframework.web.filter.CorsFilter;/** * @description 布吕马过虑器 * @author Mr.M * @date2022/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,观察应用程序记录,成功化解布吕马。

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

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务