CORS跨域配置

对于前后端分离的Web工程,后端接口可能由不只一个地址来提供,这就涉及一个跨域问题,具体可以参考/软件工程/Web前端/Web客户端编程/HTML5/浏览器同源策略章节。

现代浏览器支持CORS响应头,SpringMVC对该功能进行了集成,我们可以简单的标注几个注解来为preflight请求的响应添加CORS头信息。

控制器使用CORS注解

下面例子代码实现了允许http://gacfox.com页面跨域访问当前接口。

@RestController
@RequestMapping(value = "index")
public class IndexController {

    @CrossOrigin(origins = "http://gacfox.com")
    @GetMapping(value = "/demo")
    public ApiResult demo() {
        return ApiResult.success();
    }
}

@CrossOrigin注解标注了当前控制器方法支持跨域访问,origins字段配置了允许的来源页面地址。

全局配置CORS

我们可以在Spring配置文件中,全局配置CORS响应头,下面是一个例子。

<mvc:cors>
    <mvc:mapping path="/api/**" allowed-origins="http://gacfox.com"/>
</mvc:cors>

代码中,我们配置允许来自http://gacfox.com的页面,跨域访问和/api/**匹配的地址。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。