`

springboot中通过cors协议解决跨域问题

阅读更多

 

对于前后端分离的项目来说,如果前端项目与后端项目部署在两个不同的域下,那么势必会引起跨域问题的出现。

针对跨域问题,我们可能第一个想到的解决方案就是jsonp,并且以前处理跨域问题我基本也是这么处理。

但是jsonp方式也同样有不足,不管是对于前端还是后端来说,写法与我们平常的ajax写法不同,同样后端也需要作出相应的更改。并且,jsonp方式只能通过get请求方式来传递参数,当然也还有其它的不足之处,针对于此,我并没有急着使用jsonp的方式来解决跨域问题,去网上找寻其它方式,也就是本文主要所要讲的,在springboot中通过cors协议解决跨域问题。

 

CORS协议
作者: K_Biao 
链接:http://www.imooc.com/article/7719
来源:慕课网
本文原创发布于慕课网 ,转载请注明出处,谢谢合作!

Cors协议

 

H5中的新特性:Cross-Origin Resource Sharing(跨域资源共享)。通过它,我们的开发者(主要指后端开发者)可以决定资源是否能被跨域访问。

cors是一个w3c标准,它允许浏览器(目前ie8以下还不能被支持)像我们不同源的服务器发出xmlHttpRequest请求,我们可以继续使用ajax进行请求访问。

具体关于cors协议的文章 ,可以参考http://www.ruanyifeng.com/blog/2016/04/cors.html 这篇文章,讲的相当不错。

在springboot中如何通过cors协议解决跨域问题

springmvc4.2版本增加了对cors的支持。

目前我所做的项目基本都是springboot进行开发,所以我这里贴下在springboot中的使用。

 

[java] view plain copy
 
  1. @Configuration  
  2. public class MyWebAppConfigurer extends WebMvcConfigurerAdapter{  
  3.   
  4.     @Override  
  5.     public void addCorsMappings(CorsRegistry registry) {  
  6.         registry.addMapping("/**");  
  7.     }  

可以在addMapping中配置我们的路径。/**代表所有路径。

 

当然也可以修改其它属性

 

[java] view plain copy
 
  1. @Configuration  
  2. public class MyWebAppConfigurer extends WebMvcConfigurerAdapter{  
  3.   
  4.     @Override  
  5.     public void addCorsMappings(CorsRegistry registry) {  
  6.            registry.addMapping("/api/**")  
  7.            .allowedOrigins("http://192.168.1.97")  
  8.            .allowedMethods("GET""POST")  
  9.            .allowCredentials(false).maxAge(3600);  
  10.     }  

以上两种,都是针对全局配置,如果你想做到更细致也可以使用@CrossOrigin这个注解在controller类中使用。

 

 

[java] view plain copy
 
  1. @CrossOrigin(origins = "http://192.168.1.97:8080", maxAge = 3600)  
  2. @RequestMapping("rest_index")  
  3. @RestController  
  4. public class IndexController{  

这样就可以指定该controller中所有方法都能处理来自http:19.168.1.97:8080中的请求。

http://blog.csdn.net/u011890101/article/details/74253842

 

分享到:
评论

相关推荐

    springboot中如何通过cors协议解决跨域问题

    为了解决这个问题,W3C提出了CORS(Cross-Origin Resource Sharing,跨域资源共享)标准。Spring Boot作为Java开发Web应用的热门框架,提供了支持CORS的机制,使得后端开发者可以方便地控制资源是否允许跨域访问。 ...

    解决springboot实现跨域session共享问题

    本文将详细讲解如何在Spring Boot应用中解决跨域session共享的问题,并探讨防止SQL注入的相关策略。 首先,让我们理解什么是跨域。跨域是指由于浏览器的同源策略限制,不同域名、协议或端口之间的页面无法直接通信...

    解决 springboot跨域请求问题

    在现代Web应用开发中,前后端...总的来说,解决SpringBoot的跨域问题需要理解同源策略和CORS机制,并根据项目规模和需求选择合适的方法。正确配置后,前后端分离的应用就能顺畅地进行数据交互,提供良好的用户体验。

    SpringMVC CORS跨域测试包

    在现代Web应用程序中,由于前后端分离的设计,跨域问题常常出现,CORS为解决这个问题提供了安全的解决方案。 在SpringMVC框架中,实现CORS功能主要涉及到以下知识点: 1. **CORS原理**:CORS是通过浏览器和服务器...

    Springboot跨域CORS处理实现原理

    本文主要介绍了 Springboot 跨域 CORS 处理实现原理,通过示例代码详细讲解了跨域问题产生、解决方案和实现原理,对大家的学习或者工作具有一定的参考学习价值。 一、源(Origin) 在 HTTP 协议中,每个 URL 由三...

    SpringBoot 跨域问题的解决方案

    SpringBoot 可以基于 Cors 解决跨域问题,Cors 是一种机制,告诉我们的后台,哪边(origin)来的请求可以访问服务器的数据。全局配置配置实例如下: ```java @Configuration public class CorsConfig implements ...

    SpringBoot跨域Jsonp和Cors的方法

    总结,SpringBoot中解决跨域问题可以通过JSONP或CORS。JSONP适用于简单的GET请求和广泛的浏览器支持,而CORS则是更现代、更安全的选择,支持多种HTTP方法和更复杂的跨域场景。在实际项目中,应根据应用的需求和目标...

    Springboot前后端分离项目配置跨域实现过程解析

    在Springboot项目中,我们可以使用`@CrossOrigin`注解或在配置文件中配置CORS来解决跨域问题。下面是一个使用`@CrossOrigin`注解的示例代码: ```java @CrossOrigin(origins = "*", maxAge = 3600) @RestController...

    provider-coustomer-CORS跨域.zip

    标题 "provider-coustomer-CORS跨域.zip" 暗示了这个压缩包包含的项目是关于在Java环境中,特别是SpringBoot框架下处理CORS(Cross-Origin Resource Sharing,跨源资源共享)的问题。CORS是一种机制,它允许Web应用...

    vue+springboot实现项目的CORS跨域请求

    CORS跨域资源共享是解决不同源之间进行资源交换时产生的安全...通过阅读这篇文章,开发者可以掌握在Vue.js与Spring Boot结合的项目中,如何应对并解决跨域请求问题,从而使得前后端分离的应用开发变得更加灵活与高效。

    详解Springboot+React项目跨域访问问题

    总结起来,Springboot+React项目中的跨域问题可以通过CORS过滤器或者前端代理服务器来解决。理解并正确实施这些解决方案,有助于构建安全且高效的前后端分离应用。在实际开发中,应根据项目需求和环境选择合适的方法...

    vue解决跨域问题.md

    例如,在Node.js中可以使用Express框架配合cors中间件来实现,而在Java SpringBoot框架中,则通过`@CrossOrigin`注解来允许跨域请求。 第二种方法是在Vue的开发阶段,使用开发服务器代理(proxy)功能。这种方法在...

    LiuShuaiDong:springboot跨域解决方案

    跨域问题在现代Web应用开发中是一个常见的挑战,而Spring Boot通过其灵活的配置和注解支持,为开发者提供了解决这一问题的有效工具和方法。无论是通过编程式配置还是通过注解,开发者都可以在Spring Boot环境中实现...

    springboot_跨域_

    本文将深入探讨如何在SpringBoot应用中解决跨域问题。 一、理解跨域 跨域是由浏览器的同源策略(Same-origin Policy)引发的问题,同源策略规定,JavaScript只能访问与当前页面同协议、同域名、同端口的资源。如果...

    SpringBoot应用跨域访问解决方案.docx

    针对跨域问题,有多种解决方案,主要分为前端解决方案、使用代理服务器和CORS(跨域资源共享)三种类型。 ##### 2.1 前端解决方案 - **HTML资源标签**:`<script>`、`<link>`、`<img>` 和 `<iframe>` 标签不受同源...

    vue怎样解决跨域问题.md

    ### Vue解决跨域问题方法详解 跨域问题是在Vue项目中常见的问题,特别是在前端向后端接口发起请求时。...通过以上方法,可以解决Vue项目中的跨域问题。开发者可以根据不同的开发和部署环境选择合适的解决方案。

    关于跨域以及SpringBoot的解决方案.docx

    ### 关于跨域以及SpringBoot的解决方案 #### 一、同源策略与跨域概念 在探讨跨域问题之前,我们首先需要理解“同源...通过这种方式,开发者可以在SpringBoot应用中轻松地解决跨域问题,提高应用的灵活性和安全性。

    springboot跨域CORS处理代码解析

    Spring Boot 跨域 CORS 处理是指在不同源之间共享资源时,如何解决浏览器的同源策略限制的问题。同源策略是浏览器的一种安全机制,禁止非同源访问,以防止恶意脚本攻击。为了解决这个问题,W3C 提出了 CORS(Cross-...

    润乾报表跨域问题解决方案

    为了解决这个问题,润乾报表提供了一种解决方案,即通过设置`document.domain`属性来实现跨域资源共享(CORS)。首先,需要确保在web.xml配置文件中使用域名而不是IP地址,例如将`reportPath`的值改为`...

Global site tag (gtag.js) - Google Analytics