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

服務器之家:專注于服務器技術及軟件下載分享
分類導航

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

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

Java Spring boot 2.0 跨域問題的解決

2021-04-24 11:44低調的小白 Java教程

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

跨域

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

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

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

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

cros

cors 全稱為 cross origin resource sharing(跨域資源共享),服務端只需添加相關響應頭信息,即可實現客戶端發出 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  主要目的便是添加相關的信息頭,使用filter也可以實現。

?
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:是否允許請求帶有驗證信息,若要獲取客戶端域下的 cookie 時,需要將其設置為 true。
  3. access-control-allow-headers:允許服務端訪問的客戶端請求頭,多個請求頭用逗號分割,例如:content-type。
  4. access-control-expose-headers:允許客戶端訪問的服務端響應頭,多個響應頭用逗號分割。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产一区二区三区四卡 | 丝瓜茄子绿巨人秋葵榴莲污 | 四虎影视在线观看2413 | 国产亚洲精品美女久久久 | 精品久久成人免费第三区 | 久久精品国产亚洲AV麻豆欧美玲 | 国产肥老上视频 | 国产99视频精品免视看7 | 欧美日韩亚洲国内综合网俺 | 精品夜夜澡人妻无码AV蜜桃 | 三级理论在线观看 | 久久综合给合久久狠狠狠… | 国产探花在线观看 | 亚洲品质自拍网站 | 明星ai人脸替换造梦在线播放 | 久久re这里精品在线视频7 | 村妇超级乱淫伦小说全集 | 国产精品夜夜爽张柏芝 | 色交视频 | 青青草高清视频 | 扒开斗罗美女了的胸罩和内裤漫画 | 婷婷99视频精品全部在线观看 | 亚洲AV无码一区二区三区乱子伦 | 国产精品福利在线观看入口 | 亚洲精品在线看 | 免费午夜网站 | 2019自拍偷拍视频 | 国产婷婷综合丁香亚洲欧洲 | 日本在线亚州精品视频在线 | 四虎影院免费在线播放 | 免费一级生活片 | 2021国产精品露脸在线 | 国产欧美国产精品第一区 | 亚洲精品久久啪啪网站成年 | 国内视频一区二区三区 | 成人夜视频寂寞在线观看 | 99久久国产综合精品女小说 | 久久99精品涩AV毛片观看 | 精品免费国产一区二区三区 | 国产亚洲精品精品国产亚洲综合 | 精品欧美一区二区三区四区 |