Java利用cors实现跨域请求实例
作者:_小凯 时间:2023-02-24 14:57:35
由于ajax本身实际上是通过XMLHttpRequest对象来进行数据的交互,而浏览器出于安全考虑,不允许js代码进行跨域操作,所以会警告
网站开发,在某些情况下需要用到跨域。
什么是跨域?
跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。
ajax本身实际上是通过XMLHttpRequest对象来进行数据的交互,而浏览器出于安全考虑,不允许js代码进行跨域操作,所以会警告。
常见解决跨域的方式
script标签
iframe
jsonp
服务端中转请求
cors
今天的主角cors
全称:Cross-Origin Resource Sharing
中文意思:跨域资源共享
它在 * 上的定义是:跨域资源共享(CORS )是一种网络浏览器的技术规范,它为Web服务器定义了一种方式,允许网页从不同的域访问其资源。而这种访问是被同源策略所禁止的。CORS系统定义了一种浏览器和服务器交互的方式来确定是否允许跨域请求。 它是一个妥协,有更大的灵活性,但比起简单地允许所有这些的要求来说更加安全。
下面就说一下cors在java tomcat下如何配置
首先下载jar包
cors-filter与java-property-utils
<!-- https://mvnrepository.com/artifact/com.thetransactioncompany/cors-filter -->
<dependency>
<groupId>com.thetransactioncompany</groupId>
<artifactId>cors-filter</artifactId>
<version>2.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.thetransactioncompany/java-property-utils -->
<dependency>
<groupId>com.thetransactioncompany</groupId>
<artifactId>java-property-utils</artifactId>
<version>1.10</version>
</dependency>
修改web.xml
增加以下代码(最好放在其他filter前边)
<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
<init-param>
<param-name>cors.allowOrigin</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.supportedMethods</param-name>
<param-value>GET, POST, HEAD, PUT, DELETE</param-value>
</init-param>
<init-param>
<param-name>cors.supportedHeaders</param-name>
<param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>
</init-param>
<init-param>
<param-name>cors.exposedHeaders</param-name>
<param-value>Set-Cookie</param-value>
</init-param>
<init-param>
<param-name>cors.supportsCredentials</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
jQuery请求示例
$.ajax("url", {
type: "POST",
xhrFields: {
withCredentials: true,
useDefaultXhrHeader: false
},
data: {
type: "test"
},
dataType: 'json',
crossDomain: true,
success: function(data, status, xhr) {
console.log(data);
}
});
来源:http://www.cnblogs.com/xiaokai0712/p/6796187.html
标签:Java,cors,跨域
0
投稿
猜你喜欢
Spring整合SpringMVC与Mybatis(SSM)实现完整登录功能流程详解
2022-07-15 10:19:25
c++野指针的原理以及避免方法
2023-10-07 09:18:53
浅谈Java序列化和hessian序列化的差异
2022-11-17 07:46:13
C#实现FTP客户端的案例
2023-06-15 19:46:47
C++初阶教程之类和对象
2021-07-24 18:53:46
教你用Java GUI实现文本文件的读写
2023-05-25 06:47:13
C#遍历文件夹后上传文件夹中所有文件错误案例分析
2022-11-03 09:28:27
Eclipse下基于Java的OpenCV开发环境配置教程
2022-01-30 21:02:54
关于javascript冒泡与默认事件的使用详解
2023-05-16 07:16:32
解决Android Studio xml 格式化不自动换行的问题
2021-09-10 06:15:42
关于Maven的使用,这些你都真的了解么
2022-01-02 14:19:08
android创建数据库(SQLite)保存图片示例
2023-07-11 23:07:14
解决MyEclipse10.7部署报错抛空指针异常问题的方法
2023-10-14 23:52:34
关于WebView 重定向行为导致的多次加载的问题
2022-09-19 02:45:44
C#数据导入到EXCEL的方法
2023-01-16 02:27:26
Android开发保存QQ密码功能
2021-09-10 06:44:27
springboot配置templates直接访问的实现
2023-01-05 14:22:51
Javaweb获取表单数据的多种方式
2022-12-25 18:13:41
Android Handler消息机制分析
2023-10-01 13:22:26
java使用OGEngine开发2048
2023-07-23 06:07:43