Java 跨域 CrossOrigin注解 Filter拦截 Nginx配置

说明

  • 资源请求的发起方与请求的资源不在同一个域中的;
  • 通常的,只要网站的【协议名protocol】、【主机host】、【端口号port】这三个中的任意一个不一样,网站间的数据请求与传输便构成了跨域调用;
  • 跨域请求可以达到服务端,可是返回结果会被浏览器拦截;

处理方式

一、filter处理器

通常的处理方法,在Filter中拦截请求,在请求头中添加信息,例如:html

setHeader("Access-Control-Allow-Origin","*")

二、@CrossOrigin注解

一、Spring 4.2以后提供了跨域注解 @CrossOrigin;
二、能够用在方法或Controller上;
三、Controller和方法上都有时,Spring会合并两个注解的属性一块儿使用;java

[官方文档]https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/CrossOrigin.htmlnginx

@CrossOrigin
@RequestMapping("/obtainJqxxListByPage")
public Map obtainJqxxListByPage(){}

注解属性有如下7个web

String[] value() default {}
String[] origins() default {}
String[] allowedHeaders() default {}
String[] exposedHeaders() default {}
RequestMethod[] methods() default {}
String  allowCredentials() default {}
long maxAge() default -1L

三、Nginx配置解决跨域