spring 跨域 CORS (Cross Origin Resources Share) 跨域

Spring提供了三种方式跨域

1、CorsFilter 过滤器

2、<mvc:cors> Bean(全局,推荐使用)

3、@CrossOrigin注解

以上三种方式本质都是用来配置CorsConfiguration

1、CorsFilter 过滤器

首先创建一个自己的过滤器

这里我创建一个类,名字为MyCorsFilter

import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;import java.util.Collections;public class MyCorsFilter extends CorsFilter {public MyCorsFilter() {super(configurationSource());}private static UrlBasedCorsConfigurationSource configurationSource(){UrlBasedCorsConfigurationSource source=new UrlBasedCorsConfigurationSource();CorsConfiguration corsConfiguration=new CorsConfiguration();/**允许跨域的地址*http://127.0.0.1:8848*/corsConfiguration.setAllowedOrigins(Collections.singletonList("http://127.0.0.1:8848"));corsConfiguration.setAllowCredentials(true);//允许跨域的路径source.registerCorsConfiguration("/tagc",corsConfiguration);return source;}
}

View Code

创建好后,进行在web.xml文件进行配置

<filter><filter-name>cors</filter-name><!--过滤器地址--><filter-class>com.wbg.maven1128.controller.MyCorsFilter</filter-class></filter><filter-mapping><filter-name>cors</filter-name><!--拦截所有--><url-pattern>/*</url-pattern></filter-mapping>

View Code

2、<mvc:cors> Bean(全局,推荐使用)

在spring-web里面进行配置

    <mvc:cors><mvc:mapping path="/taga"allowed-origins="http://127.0.0.1:8020"allowed-methods="POST,GET, OPTIONS,DELETE,PUT"allowed-headers="Content-Type,ContentType,Access-Control-Allow-Headers, Authorization, X-Requested-With"allow-credentials="true"/></mvc:cors>

View Code

3、@CrossOrigin注解

定义在类上,所有方法有效,@CrossOrigin不带参数就是默认

定义在方法上,该方法有效

测试页面

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><script src="http://code.jquery.com/jquery.js"></script><body><button onclick="aa() ">开始</button>
<script>function aa(){if(window.confirm("是否发送?")){fetch("http://localhost:8080/taga",{method:"get"}).then(function(res){resp.text().then(function(data){console.log(data);});})}else {fetch("http://localhost:8080/tagb",{method:"get"}).then(function(res){res.text().then(function(data){console.log(data);})})}}
</script></body>
</html>

View Code

跨域

posted @ 2018-11-28 13:30 韦邦杠 阅读(...) 评论(...) 编辑 收藏

spring 跨域 CORS (Cross Origin Resources Share) 跨域相关推荐

  1. 跨域 -- cors

    Origin . Host . Referer 1.1 Origin -简单请求 GET HTTP/2 Origin: https://h5test.selfshero.com Referrer Po ...

  2. ajax跨域请求问题:Access to XMLHttpRequest at……has been blocked by CORS policy: Cross origin requests

    背景:本地代码调试时,加载本地资源正常,jquery的AJAX请求服务端资源报错. Access to XMLHttpRequest at '***** ' from origin 'null' ha ...

  3. CORS跨域资源共享(二):详解Spring MVC对CORS支持的相关类和API【享学Spring MVC】

    每篇一句 重构一时爽,一直重构一直爽.但出了问题火葬场 前言 上篇文章通过我模拟的跨域请求实例和结果分析,相信小伙伴们都已经80%的掌握了CORS到底是怎么一回事以及如何使用它.由于Java语言中的w ...

  4. 【跨域异常】Cross origin requests are only supported for protocol schemes: http, data, chrome,chrome-exten

    一.背景描述 下面是我用ajax异步请求时的写法,请注意url是怎么写的,下面的错误就是由于这个url的写法导致的. // 获取省份列表 $(document).ready(function () { ...

  5. Jetty Cross Origin Filter解决jQuery Ajax跨域访问的方法

    当使用jQuery Ajax post请求时可能会遇到类似这样的错误提示 XMLHttpRequest cannot load http://xxxxxx. Origin http://xxxxxx ...

  6. Spring MVC学习总结(10)——Spring MVC使用Cors跨域

    跨站 HTTP 请求(Cross-site HTTP request)是指发起请求的资源所在域不同于该请求所指向资源所在的域的 HTTP 请求.比如说,域名A(http://domaina.examp ...

  7. 跨域 cors 请求两次_请求两次的故事-CORS

    跨域 cors 请求两次 The story of requesting twice, allow me to explain how it all began. 请求两次的故事,让我解释一下这是如何 ...

  8. 跨域(CORS)请求问题[No 'Access-Control-Allow-Origin' header is present on the requested resource]常见解决方案

    基本概念 跨域(CORS)请求:同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略, ...

  9. 【VSCode】from origin ‘null‘ has been blocked by CORS policy: Cross origin requests are only supported

    Access to script at 'file:///C:/Users/dawulei/Desktop/%E9%A1%B9%E7%9B%AE/%E5%9D%A6%E5%85%8B%E5%A4%A7 ...

  10. 新蜂商城(newbee-mall-api)部分接口实验,跨域处理(同源策略,跨域访问,CORS),系统安全问题(Session,Cookie,Token,OAuth)(软件工程综合实践课程第十三周)

    文章目录 一.要求 二.知识总结 跨域处理 1.同源策略 1.1 浏览器的同源策略 1.2 跨域请求实验 2 跨域访问 2.1 添加响应头来处理跨域 2.1.1 CORS 跨域资源共享 2.1.2 设 ...

最新文章

  1. 浏览器的加载与页面性能优化
  2. 顶部标题栏(四)自定义ActionBar风格和样式
  3. python显示数据长度_Python数据分析之初识可视化
  4. 【组原】广州大学计算机组成原理考试部分题+复习资料(2020-2021)
  5. Linux内核--内核地址空间分布和进程地址空间
  6. SAP ABAP实用技巧介绍系列之如何创建Maintenance view
  7. Greenplum 数据库架构分析
  8. 查看mysql数据库历史_查看mysql数据库历史
  9. linux操作系统网络,网络安装linux操作系统
  10. 后端根据查询条件生成excel文件返回给前端,vue进行下载
  11. 结对编程2-单元测试
  12. 《紫川》之远东战火 十一卷
  13. xshell 执行脚本API介绍(附带xsh的python包)
  14. CNS服务器(配合百度直连)游戏修复专栏
  15. FM模型及其在推荐系统中的应用
  16. Python爬取豆瓣读书Top250(正则表达式)
  17. (附源码)ssm失物招领系统 毕业设计182317
  18. C语言一些常用于C51编程的函数(单片机编程)
  19. cogs1487. 麻球繁衍
  20. repeater导出excel html,Repeater控件数据导出Excel(附演示动画)

热门文章

  1. 2021-06-21属性选择器
  2. UNITY服务器登录验证设计,Unity游戏登录模块流程(需验证)
  3. C++ 友元函数 友元类 friend class
  4. 数据库 并发 悲观锁 乐观锁 是什么 区别
  5. Hyperledger Fabric 或 Composer 获取某个channel区块链的信息 或 区块链的最新高度
  6. linux系统c语言编译icpc,ACM-ICPC 比赛环境的使用
  7. java ssh2连接_通过JCraft的jsch包基于SSH2协议实现连接linux服务器提供终端操作的java工具实现类SftpUtil...
  8. Unity实现动态资源加载的5种方式
  9. 使用springboot自带 MD5加密
  10. 计算机组成原理——第一章