一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java Spring boot 2.0 跨域問題的解決

Java Spring boot 2.0 跨域問題的解決

2021-04-24 11:44低調(diào)的小白 Java教程

本篇文章主要介紹了Java Spring boot 2.0 跨域問題的解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

跨域

一個資源會發(fā)起一個跨域http請求(cross-site http request), 當(dāng)它請求的一個資源是從一個與它本身提供的第一個資源的不同的域名時 。

比如說,域名a(http://domaina.example)的某 web 應(yīng)用程序中通過標(biāo)簽引入了域名b(http://domainb.foo)站點(diǎn)的某圖片資源(http://domainb.foo/image.jpg),域名a的那 web 應(yīng)用就會導(dǎo)致瀏覽器發(fā)起一個跨站 http 請求。在當(dāng)今的 web 開發(fā)中,使用跨站 http 請求加載各類資源(包括css、圖片、javascript 腳本以及其它類資源),已經(jīng)成為了一種普遍且流行的方式。

正如大家所知,出于安全考慮,瀏覽器會限制腳本中發(fā)起的跨站請求。比如,使用 xmlhttprequest對象發(fā)起 http 請求就必須遵守同源策略。 具體而言,web 應(yīng)用程序能且只能使用 xmlhttprequest 對象向其加載的源域名發(fā)起 http 請求,而不能向任何其它域名發(fā)起請求。為了能開發(fā)出更強(qiáng)大、更豐富、更安全的web應(yīng)用程序,開發(fā)人員渴望著在不丟失安全的前提下,web 應(yīng)用技術(shù)能越來越強(qiáng)大、越來越豐富。比如,可以使用 xmlhttprequest 發(fā)起跨站 http 請求。(這段描述跨域不準(zhǔn)確,跨域并非瀏覽器限制了發(fā)起跨站請求,而是跨站請求可以正常發(fā)起,但是返回結(jié)果被瀏覽器攔截了。最好的例子是csrf跨站攻擊原理,請求是發(fā)送到了后端服務(wù)器無論是否跨域!注意:有些瀏覽器不允許從https的域跨域訪問http,比如chrome和firefox,這些瀏覽器在請求還未發(fā)出的時候就會攔截請求,這是一個特例。)

more:https://developer.mozilla.org/zh-cn/docs/web/http/access_control_cors

cros

cors 全稱為 cross origin resource sharing(跨域資源共享),服務(wù)端只需添加相關(guān)響應(yīng)頭信息,即可實(shí)現(xiàn)客戶端發(fā)出 ajax 跨域請求。

@crossorigin

1.在controller上直接使用  controller上的所有請求都可以跨域 ,origins = "*" 代表所有都能請求

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@crossorigin(origins = "http://domain2.com", maxage = 3600)
@restcontroller
@requestmapping("/account")
public class accountcontroller {
 
  @requestmapping("/{id}")
  public account retrieve(@pathvariable long id) {
    // ...
  }
 
  @requestmapping(method = requestmethod.delete, path = "/{id}")
  public void remove(@pathvariable long id) {
    // ...
  }
}

2. 在方法上使用

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@crossorigin(maxage = 3600)
@restcontroller
@requestmapping("/account")
public class accountcontroller {
 
  @crossorigin("http://domain2.com")
  @requestmapping("/{id}")
  public account retrieve(@pathvariable long id) {
    // ...
  }
 
  @requestmapping(method = requestmethod.delete, path = "/{id}")
  public void remove(@pathvariable long id) {
    // ...
  }
}

另一中方法:

corsfilter  主要目的便是添加相關(guān)的信息頭,使用filter也可以實(shí)現(xiàn)。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@configuration
public class beanconfiguration {
 
  @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);
  }
 
}

access-control-allow-origin:允許訪問的客戶端域名,例如:http://web.xxx.com,若為 *,則表示從任意域都能訪問,即不做任何限制。

  1. access-control-allow-methods:允許訪問的方法名,多個方法名用逗號分割,例如:get,post,put,delete,options。
  2. access-control-allow-credentials:是否允許請求帶有驗(yàn)證信息,若要獲取客戶端域下的 cookie 時,需要將其設(shè)置為 true。
  3. access-control-allow-headers:允許服務(wù)端訪問的客戶端請求頭,多個請求頭用逗號分割,例如:content-type。
  4. access-control-expose-headers:允許客戶端訪問的服務(wù)端響應(yīng)頭,多個響應(yīng)頭用逗號分割。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:http://www.cnblogs.com/wang-yaz/p/8966768.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 四虎免费影院4hu永久免费 | 国产极品美女在线 | 国产在线精品成人一区二区三区 | 国产成+人+综合+欧美 亚洲 | 精品国产精品人妻久久无码五月天 | 性姿势女人嗷嗷叫图片 | 国产成人免费片在线观看 | 国产精品林美惠子在线观看 | 精品一区二区三区免费观看 | 热99这里有精品综合久久 | 成年看片免费高清观看 | 国产嘿咻| 私人chinese beauty | 国产香蕉一区二区精品视频 | 教师系列 大桥未久在线 | tube日本高清老少配 | 亚洲国产精品久久人人爱 | 四虎最新紧急更新地址 | 成人特级毛片69免费观看 | 久久久这里有精品999 | 欧美人禽杂交在线视频 | 99ri在线精品视频 | 国产高清在线视频一区二区三区 | 久久久久久88色偷偷 | 俄罗斯海滩厕所偷窥 | 爱操综合网 | 日本人成年视频在线观看 | 欧美一级在线全免费 | 狠狠色综合久久婷婷色天使 | 苍井空50分钟无码 | 波多野结衣女教师在线观看 | 国产爽视频| 美女张开下身让男人桶 | 国产精品第2页 | 欧美日韩高清完整版在线观看免费 | 精品一区二区三区免费毛片 | 无码国产成人777爽死 | www.爱情岛论坛 | 99这里都是精品 | 国产91精品在线播放 | 99视频都是精品热在线播放 |