博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java web 跨域
阅读量:7117 次
发布时间:2019-06-28

本文共 2203 字,大约阅读时间需要 7 分钟。

 

跨域是指html文件所在的服务器与ajax请求的服务器是不同的ip+port,例如: 

- ‘192.168.1.1:8080’ 与 ‘192.168.1.2:8080’是不同的域。 
- ‘192.168.1.1:8080’ 与 ‘192.168.1.1:8081’是不同的域。

解决此类问题的方法很多,有需要客户端和服务端都要更改的,例如jsonp,iframe等等;有只需要客户端更改的,这种情况只能出现在hybrid app开发中,即通过调用native方法来进行网络请求;有只需要服务端配置的,下面介绍3种服务端配置的方法。

第一种

如果您使用的mvc框架是spring4.2以上的话,一个@CrossOrigin就可以搞定。将@CrossOrigin加到Controller上,那么这个Controller所有的请求都是支持跨域的,代码如下:

@Controller@CrossOriginpublic class GreetingController {

将@CrossOrigin加到请求方法上,那么这个请求是支持跨域的,代码如下

@CrossOrigin    @RequestMapping("/greeting")    public @ResponseBody Greeting greeting(@RequestParam(required=false, defaultValue="World") String name) {

第二种

全局配置,也需要spring4.2以上。

@Bean    public WebMvcConfigurer corsConfigurer() {        return new WebMvcConfigurerAdapter() {            @Override            public void addCorsMappings(CorsRegistry registry) {                registry.addMapping("/greeting-javaconfig").allowedOrigins("http://localhost:9000");            }        };    }

.addCorsMappings()中的参数代表支持跨域的url,.allowedOrigins()中的参数代表可以访问该接口的域名,设置为”*”可支持所有域。

第三种

这种方法就跟框架无关了,需要两个jar包,点击进行下载,两个jar包可以放的程序里,也可以放到tomcat中,然后将下面的配置写到web.xml中就可以了

< filter >        < filter-name > CORS 
< filter-class > com.thetransactioncompany.cors.CORSFilter
< init-param > < param-name > cors.allowOrigin
< param-value > *
< init-param > < param-name > cors.supportedMethods
< param-value > GET, POST, HEAD, PUT, DELETE
< init-param > < param-name > cors.supportedHeaders
< param-value > Accept, Origin, X-Requested-With, Content-Type, Last-Modified
< init-param > < param-name > cors.exposedHeaders
< param-value > Set-Cookie
< init-param > < param-name > cors.supportsCredentials
< param-value > true
< filter-mapping > < filter-name > CORS
< url-pattern > /*
还有一种更省事的办法是在Nginx上加入支持。

转载于:https://www.cnblogs.com/maohuidong/p/9802075.html

你可能感兴趣的文章
Autoit 自动化安装软件
查看>>
ubuntu中文出现乱码
查看>>
Javascript的console.log()用法
查看>>
创建git库
查看>>
数据库---数据库查询的各种子句
查看>>
细说浏览器特性检测(1)-jQuery1.4添加部分
查看>>
类的初始化
查看>>
ethereum/EIPs-1271 smart contract
查看>>
Lua函数之一
查看>>
常看本地是否安装Git和maven工具
查看>>
sql server统计字段的值在某些范围内中的个数
查看>>
C# Application.DoEvents() 处理队列消息,防界面假死。
查看>>
python基础===python实现截图
查看>>
Quartus中代码字体大小的调整方法
查看>>
win10 mstsc 远程,登录失败,账号限制
查看>>
php关于精准计算的模块 BCMath
查看>>
【Android的从零单排开发日记】——Android数据存储(上)
查看>>
subversion配置(ubuntu,debian)
查看>>
SAMBA 共享服务器搭建
查看>>
sharepoint 中根据loginName获取displayName以及用户信息 .
查看>>