跨域服务器不稳定,服务器端解决跨域问题的三种方法

转载自:https://blog.csdn.net/james_wade63/article/details/50772041html

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

- ‘192.168.1.1:8080’ 与 ‘192.168.1.2:8080’是不一样的域。

- ‘192.168.1.1:8080’ 与 ‘192.168.1.1:8081’是不一样的域。java

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

第一种

若是您使用的mvc框架是spring4.2以上的话,一个@CrossOrigin就能够搞定。将@CrossOrigin加到Controller上,那么这个Controller全部的请求都是支持跨域的,代码以下:ajax

@Controller

@CrossOriginpublic class GreetingController {

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

@CrossOrigin

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

更详细的@CrossOrigin介绍,请参看这里json

第二种

全局配置,也须要spring4.2以上。跨域

@BeanpublicWebMvcConfigurer corsConfigurer() {return newWebMvcConfigurerAdapter() {

@Overridepublic voidaddCorsMappings(CorsRegistry registry) {

registry.addMapping("/greeting-javaconfig").allowedOrigins("http://localhost:9000");

}

};

}

.addCorsMappings()中的参数表明支持跨域的url,.allowedOrigins()中的参数表明能够访问该接口的域名,设置为”*”可支持全部域。tomcat

第三种

这种方法就跟框架无关了,须要两个jar包,点击这里进行下载,两个jar包能够放的程序里,也能够放到tomcat中,而后将下面的配置写到web.xml中就能够了服务器

CORS

com.thetransactioncompany.cors.CORSFilter

cors.allowOrigin

*

cors.supportedMethods

GET, POST, HEAD, PUT, DELETE

cors.supportedHeaders

Accept, Origin, X-Requested-With, Content-Type, Last-Modified

cors.exposedHeaders

Set-Cookie

cors.supportsCredentials

true

CORS

/*

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值