示例 @CrossOrigin注解的使用
接下来测试跨域发送请求,再新建一个项目CrossOriginTest
,加入所需的jar
文件.
项目结构
展开/折叠
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| G:\Desktop\随书源码\Spring+Mybatis企业应用实战(第2版)\codes\03\CrossOriginTest ├─src\ │ └─org\ │ └─fkit\ │ └─controller\ │ └─CrossOriginController.java └─WebContent\ ├─META-INF\ │ └─MANIFEST.MF └─WEB-INF\ ├─content\ │ └─welcome.jsp ├─lib\ │ ├─commons-logging-1.2.jar │ ├─spring-aop-5.0.1.RELEASE.jar │ ├─spring-aspects-5.0.1.RELEASE.jar │ ├─spring-beans-5.0.1.RELEASE.jar │ ├─spring-context-5.0.1.RELEASE.jar │ ├─spring-context-indexer-5.0.1.RELEASE.jar │ ├─spring-context-support-5.0.1.RELEASE.jar │ ├─spring-core-5.0.1.RELEASE.jar │ ├─spring-expression-5.0.1.RELEASE.jar │ ├─spring-instrument-5.0.1.RELEASE.jar │ ├─spring-jcl-5.0.1.RELEASE.jar │ ├─spring-jdbc-5.0.1.RELEASE.jar │ ├─spring-jms-5.0.1.RELEASE.jar │ ├─spring-messaging-5.0.1.RELEASE.jar │ ├─spring-orm-5.0.1.RELEASE.jar │ ├─spring-oxm-5.0.1.RELEASE.jar │ ├─spring-test-5.0.1.RELEASE.jar │ ├─spring-tx-5.0.1.RELEASE.jar │ ├─spring-web-5.0.1.RELEASE.jar │ ├─spring-webflux-5.0.1.RELEASE.jar │ ├─spring-webmvc-5.0.1.RELEASE.jar │ └─spring-websocket-5.0.1.RELEASE.jar ├─springmvc-config.xml └─web.xml
|
CrossOriginController.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| package org.fkit.controller;
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping;
@CrossOrigin(maxAge = 3600) @Controller public class CrossOriginController { @CrossOrigin(origins = "http://localhost:8080/VariableTest") @GetMapping(value = "/welcome") public String welcome() { System.out.println("处理跨域请求"); return "welcome"; } }
|
CrossOriginController
类和welcome
方法上都使用了@CrossOrigin
注解。 welcome
方法接收到跨域请求
进行简单处理后,跳转到welcome.jsp
。
welcome.jsp
1 2 3 4 5 6 7 8 9 10 11 12
| <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>测试@CrossOrigin注解</title> </head> <body> <br>恭喜您,测试跨域访问成功! </body> </html>
|
此外,还需要在web.xml
文件中配置Spring MVC
的前端控制器DispatcherServlet
,因为每次配置基本一致,此处不再赘述,读者可自行配置。
部署测试
同时部署VariableTest
和CrossOriginTest
两个Web
应用,在浏览器中输入如下URL
来测试进入VariableTest
应用:
1
| http://localhost:8080/VariableTest/
|
然后点击测试@CrossOrigin注解
超链接:
1 2
| <a href="http://localhost:8080/CrossOriginTest/welcome">测试@CrossOrigin注解</a>
|
向另一个Web
应用CrossOriginTest
发送跨域请求,CrossOriginTest
应用的CrossOriginController
控制器的welcome
方法将会处理这个跨域请求,控制台输出结果如下:
同时浏览器上将显示CrossOriginTest
应用的welcome.jsp
页面。
总结
@CrossOrigin
注解可以接收从另一个Web
应用发来的跨域请求。