栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java解决跨域(后端转发方式)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java解决跨域(后端转发方式)

背景

跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。

通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。详细理论可以参考前端常见跨域解决方案这篇文章。

后端转发解决跨域

开发过程中经常能碰到这种场景,前端页面访问的是外部资源(跟前端应用部署的不是一台机器或者不是一个IP),此时常见的做法是通过 nginx 进行代理转发解决跨域。

代理转发要求被代理服务的域名(IP)固定,且具有统一前缀(最好),否则不但配置繁琐,还可能请求失败。

如果某个后端服务的请求路径不固定,则可以通过后端服务进行转发,这里以Java为例。

	@GetMapping("/cros")
    public void testCros(HttpServletResponse response) throws IOException {
        String url = "http://www.baidu.com";
        HttpGet httpGet = new HttpGet(url);
        CloseableHttpClient httpClient = HttpClients.createDefault();
        CloseableHttpResponse execute = httpClient.execute(httpGet);
        // 此处也可以设置一下响应头
        execute.getEntity().writeTo(response.getOutputStream());
    }

此时 请求咱们接口,前端调咱们后端的接口就可以访问想代理的链接了。

参考

前端常见跨域解决方案HttpClient 4.5 中转请求到HttpServletResponse

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/754882.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号