一、簡介
web 開發經常會遇到跨域問題,解決方案有:jsonp,iframe,cors 等等
1.1、cors與jsonp相比
1、jsonp只能實現get請求,而cors支援所有型別的http請求。
2、使用cors,開發者可以使用普通的xmlhttprequest發起請求和獲得資料,比起jsonp 有更好的錯誤處理。
3、jsonp主要被老的瀏覽器支援,它們往往不支援cors,而絕大多數現代瀏覽器都已經支援了cors瀏覽器支援情況
chrome 3+
firefox 3.5+
opera 12+
safari 4+
internet explorer 8+
二、實現cors
說明:在springmvc中可以配置全域性的規則,也可以使用@crossorigin註解進行細粒度的配置
2.1、全域性配置
方式一:註冊bean
package com.example.demo.utils.configuration;說明:表示對於/api請求下的所以資源,允許http://localhost:8080訪問import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
import org.springframework.web.servlet.config.annotation.corsregistry;
import org.springframework.web.servlet.config.annotation.webmvcconfigurer;
import org.springframework.web.servlet.config.annotation.webmvcconfigureradapter;
/** * created by dell on 2017/6/18.
*/@configuration
public class customcorsconfiguration };}
}
方式二:繼承webmvcconfigureradapter
package com.example.demo.utils.configuration;說明:表示對於/api請求下的所以資源,允許http://localhost:8080訪問import org.springframework.web.servlet.config.annotation.corsregistry;
import org.springframework.web.servlet.config.annotation.webmvcconfigureradapter;
/** * 跨域請求處理
* @author: 我愛大金子
* @description: 跨域請求處理
* @date: created in 10:12 2017/6/18
*/@configuration
public class customcorsconfiguration2 extends webmvcconfigureradapter
}
2.2、細粒度配置
在controller中加入@crossorigin註解,如:@crossorigin(origins = "http://localhost:8080")
本文出自 「我愛大金子」 部落格,請務必保留此出處
springboot(9):web開發-cors支援
標籤:springboot
springboot web開發-cors支援
springboot支援CORS解決跨域
cors是有w3c制定的一種跨域資源共享技術標準,其主要目的就是解決前端的跨域請求。最常見的前端跨域請求解決方案是jsonp,但是這個方式只支援get請求。對比來說cors可以支援多種http請求方式。下面介紹下怎麼springboot使用cors如何處理跨域問題 直接上 如下圖中使用 crosso...
SpringBoot新增支援CORS跨域訪問
原文 基於springbooot專案搭建可以站外ajax請求訪問的跨域資源伺服器。使用idea開發工具建立乙個springboot專案,預先新增web依賴即可,專案結構如下圖1所示 圖1我們只需要新增專案web依賴就可以了,下面我們開始新增cors的配置資訊,我們建立乙個corsconfigurat...
SpringBoot新增支援CORS跨域訪問
cors cross origin resource sharing 跨域資源共享 是乙個w3c標準,它允許瀏覽器向跨域伺服器傳送ajax請求,打破了ajax只能訪問本站內的資源限制。我們在開發中都會遇到前端請求後台伺服器出現跨域錯誤,下面我就講一下如何讓你的springboot專案支援cors跨域...