SpringBoot解決cors跨域問題
1.使用@CrossOrigin註解實現
對單個介面配置CORS
@CrossOrigin(origins = {"*"})
@PostMapping("/hello")
@ResponseBody
public ResultVO hello() {
return new ResultVO(1,"成功");
}
對某個Controller下的所有介面配置CORS
@CrossOrigin
@Controller
public class HelloController {
}
2.配置全域性的CORS
方法(1)新增配置類
package com.lzc.cors.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; @Configuration public class CorsConfig { @Bean public CorsFilter corsFilter() { final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource(); final CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.setAllowCredentials(true); corsConfiguration.addAllowedOrigin("*"); corsConfiguration.addAllowedHeader("*"); corsConfiguration.addAllowedMethod("*"); urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration); return new CorsFilter(urlBasedCorsConfigurationSource); } }
方法(2)新增配置類
package com.lzc.cors.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; @Configuration public class WebMvcConfig extends WebMvcConfigurationSupport { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("*") .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE") .maxAge(3600) .allowCredentials(true); } }
方法(3)使用Filter方法,還需要在啟動類加上@ServletComponentScan註解
package com.lzc.cors.filter; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebFilter(urlPatterns = "*") public class CorsFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest)request; HttpServletResponse httpResponse = (HttpServletResponse) response; httpResponse.setCharacterEncoding("UTF-8"); httpResponse.setContentType("application/json; charset=utf-8"); httpResponse.setHeader("Access-Control-Allow-Origin", "*"); httpResponse.setHeader("Access-Control-Allow-Credentials", "true"); httpResponse.setHeader("Access-Control-Allow-Methods", "*"); httpResponse.setHeader("Access-Control-Allow-Headers", "Content-Type,Authorization"); httpResponse.setHeader("Access-Control-Expose-Headers", "*"); filterChain.doFilter(httpRequest, httpResponse); } @Override public void destroy() { } }
相關推薦
SpringBoot解決CORS跨域(@CrossOrigin)
一、關於跨域介紹 在前後分離的架構下,跨域問題難免會遇見比如,站點 http://domain-a.com 的某 HTML 頁面通過 的 src 請求 http://domain-b.com/image.jpg。網路上的許多頁面都會載入來自不同域的CSS樣式
SpringBoot解決cors跨域問題
1.使用@CrossOrigin註解實現 對單個介面配置CORS @CrossOrigin(origins = {"*"}) @PostMapping("/hello") @ResponseBody public ResultVO hello()
Spring MVC 解決CORS跨域問題
從4.2之後,Spring Framework可以解決跨域問題,開箱即用,下面是從官方文件總結了3種解決辦法。 利用@CrossOrigin註解,作用在Controller的類或方法上,可以指定origins、allowedHeaders、exposedHeaders、all
java配置跨域springboot配置Cors跨域
springboot配置Cors跨域、java最簡單配置跨域解決方案 aiprose 個人隨筆上線,網址 aiprose.com 點選訪問 現在前後分離已經是很常見的一種開發方式了,所以難免會遇到跨域問題,之前用的比較多的是jsonp(本人表示沒用過),之前
SpringBoot解決ajax跨域問題(轉載)
一、第一種方式:1、編寫一個支援跨域請求的 Configurationimport org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.Co
SpringBoot解決ajax跨域問題
一、第一種方式: 1、編寫一個支援跨域請求的 Configuration import org.springframework.context.annotation.Configuration; import org.springframework.web.servl
SpringBoot配置CORS跨域訪問
SpringBoot配置CORS跨域訪問 新增依賴 <!--CORS只需要新增web依賴即可--> <dependency> <groupId>org.springframework.boot</groupId>
解決ajax跨域的方法原理詳解之Cors方法
詳細 不同 htm 渲染 jsonp del 需要 methods href 1、神馬是跨域(Cross Domain) 對於端口和協議的不同,只能通過後臺來解決。 一句話:同一個ip、同一個網絡協議、同一個端口,三者都滿足就是同一個域,否則就是 跨域問題了。而為
CORS解決WebApi跨域問題(轉)
域配置 routes efault pre action let tro img 搜索 CORS全稱Cross-Origin Resource Sharing,中文全稱跨域資源共享。它解決跨域問題的原理是通過向http的請求報文和響應報文裏面加入相應的標識告訴瀏覽器它能訪問
前端-關於CORS跨域的解決方案,面向服務端
red 瀏覽器 環境 和我 methods retrieve name 後臺 一件事 最近自己在寫後臺管理系統的時候,並沒有采用jsp、freemaker、葉子等模板技術,而是由後端提供數據api,前端通過AJAX和JQuery來動態操作頁面上的一些div、table元素,
解決ajax跨域的辦法,代理,cors,jsonp
resource 通過 使用 -o 參考 acc log 方式 sha 1、使用php做代理去請求第三方api接口 php是可以跨域的,我們利用ajax請求本域名中的php文件,php再去請求第三方接口文件,從而達到跨域目的。 php做代理請求: aj
CORS 跨域與 TP5中跨域的解決方案
在做專案過程中,使用Vue-element-admin作為前端,ThinkPHP5作為後端框架進行開發,會遭遇跨域問題,本文給出ThinkPHP5解決跨域 1.CORS的概念 CORS(Cross-Origin Resource Sharing 跨源資源共享),當
CORS解決ajax跨域訪問問題---
/** * 登入驗證 * * @author ruoyi */ @CrossOrigin(origins = "http://127.0.0.1:8020", maxAge = 36000) @Controller public
Shiro框架在CORS跨域訪問中遇到的問題及解決
背景 最近做一個前後端分離的專案時,使用shiro做許可權管理時遇到跨域問題,這裡做一下記錄。 原因 後端通過Shiro配置URL過濾, shiroFilterFactoryBean.setLoginUrl("/unauth"); 預設對於沒有授權的訪問
CORS跨域請求的限制和解決
我們模擬一個跨域的請求,一個是8888,一個是8887 //server.js const http = require('http'); const fs = require('fs'); http.createServer(function(req,res){ conso
解決ajax跨域問題(2-2)cors
https://www.cnblogs.com/2017Python/articles/7942124.html Ajax——Cors實現跨域ajax Cors實現跨域ajax,基本原理:客戶端不變,伺
解決ajax跨域問題(2)cors
http://www.cnblogs.com/sloong/p/cors.html CORS 跨域 實現思路及相關解決方案 本篇包括以下內容: CORS 定義 CORS 對比 JSONP CORS,BROWSER支援情況 主要用途 Ajax
SpringBoot rest-api+Vue CORS跨域.md
跨域,指的是瀏覽器不能執行其他網站的指令碼。它是由瀏覽器的同源策略造成的,是瀏覽器對JavaScript施加的安全限制。 目前用到兩種方式 前後端統一通過代理轉發,使api和vue web都通過同一域名+埠來訪問,以確保同源; 通過服務端介面層配置,支援CORS請求; 服務層配置
java服務端解決js跨域的問題 CORS(跨域資源共享) 的配置
nginx相容跨域上傳 相容情況: 各種新版本的ie10,firefox,opera,safari,chrome以及移動版safari和Android瀏覽器 ie9及一下版本請使用flash方式來相容 通過OPTIONS請求握手一次的方式實現跨根域傳送請求,需要服務端配置
CORS ———— 跨域解決方案之二
其他跨域方案請看: 以下介紹CORS跨域解決方案 一、什麼是CORS? CORS (Corss-Orign Resource Sharing) 是W3C工作草案,是一份瀏覽器技術的規範。定義了跨域資源訪問時,瀏覽器和伺服器之間如何通訊,使用自定義的http頭部允