日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

跨域解决方案之CORS

發布時間:2025/3/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 跨域解决方案之CORS 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1.什么叫做跨域請求

2.跨域調用測試

3.解決方案CORS跨域

(1)概述

(2)請求過程

(3)解決辦法

(4)SpringMVC跨域注解


1.什么叫做跨域請求

跨域是指通過js在不同的域之間進行數據傳輸或通信,比如用ajax向一個不同的域請求數據,或者通過js獲取頁面中不同域的框架中(iframe)的數據。只要協議、域名、端口有任何一個不同,都被當作是不同的域。

2.跨域調用測試

(1)啟動一個服務,端口號為8080

@RestController public class CORSController { ?@RequestMapping("findName")public Map findName() {Map map = new HashMap();map.put("name", "張三");map.put("age", 18);return map;} }

(2)啟動另一個服務,端口號為9090

test.html

<script src="js/angular.js"></script> ? <script>var app=angular.module("myApp",[]);app.controller("myController",function ($http,$scope) {$scope.findName=function () {$http.get('http://localhost:8080/findName.do').success(function (response) {$scope.person=response;})}}) </script> <body ng-app="myApp" ng-controller="myController" ng-init="findName()"> ? {{person.name}}<br/> {{person.age}}

當9090的服務調用8080的findName方法時,會報如下的錯誤

Failed to load http://localhost:8080/findName.do: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9090' is therefore not allowed access. The response had HTTP status code 404.

3.解決方案CORS跨域

(1)概述

CORS是一個W3C標準,全稱是"跨域資源共享"(Cross-origin resource sharing)。CORS需要瀏覽器和服務器同時支持。目前,所有瀏覽器都支持該功能,IE瀏覽器不能低于IE10。

它允許瀏覽器向跨源服務器,發出XMLHttpRequest請求,從而克服了AJAX只能同源使用的限制。整個CORS通信過程,都是瀏覽器自動完成,不需要用戶參與。對于開發者來說,CORS通信與同源的AJAX通信沒有差別,代碼完全一樣。瀏覽器一旦發現AJAX請求跨源,就會自動添加一些附加的頭信息,有時還會多出一次附加的請求,但用戶不會有感覺。因此,實現CORS通信的關鍵是服務器。只要服務器實現了CORS接口,就可以跨源通信。

(2)請求過程

請求過程如下圖:

Preflight Request:

然后服務器端給我們返回一個Preflight Response

(3)解決辦法

Access-Control-Allow-Origin

Access-Control-Allow-Origin是HTML5中定義的一種解決資源跨域的策略。

他是通過服務器端返回帶有Access-Control-Allow-Origin標識的Response header,用來解決資源的跨域權限問題。

使用方法,在response添加 Access-Control-Allow-Origin,例如

Access-Control-Allow-Origin:www.google.com

也可以設置為 * 表示該資源誰都可以用

?

更改8080端口的controller方法

@RestController public class CORSController { ?@RequestMapping("findName")public Map findName(HttpServletResponse response) {response.setHeader("Access-Control-Allow-Origin", "http://localhost:9090");?Map map = new HashMap();map.put("name", "張三");map.put("age", 18);return map;} }

重新訪問http://localhost:9090/test.html,可以跨域請求成功

如果要操作cookie,后端controller層加如下代碼

? response.setHeader("Access-Control-Allow-Origin", "http://localhost:9090");//此時Access-Control-Allow-Origin無法用*匹配任意地址,必須指定精確的路徑response.setHeader("Access-Control-Allow-Credentials", "true");

前端必須在AJAX請求中打開withCredentials屬性

$http.get('http://localhost:8080/cors01/findName.do',{'withCredentials':true})

請求頭如下:

響應頭如下:

(4)SpringMVC跨域注解

springMVC的版本在4.2或以上版本,可以使用注解實現跨域, 我們只需要在需要跨域的方法上添加注解@CrossOrigin即可

@CrossOrigin(origins="http://localhost:9090",allowCredentials="true")

allowCredentials="true" 可以缺省

?

總結

以上是生活随笔為你收集整理的跨域解决方案之CORS的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91麻豆网站 | 国产精品久久综合青草亚洲AV | 九草在线视频 | 一级影片在线观看 | 另类视频在线观看 | 蜜臀av免费一区二区三区水牛 | 搡国产老太xxx网站 高h喷汁呻吟3p | 天天看夜夜爽 | 琪琪午夜伦理影院7777 | 天天看天天色 | 色婷婷九月 | 精品天堂 | 涩涩涩在线观看 | 国产精品一区二区三区四 | 意大利性荡欲xxxxxx | 国产黄色精品网站 | 欧美日韩五月天 | 精品人妻码一区二区三区红楼视频 | 九九热8| wwwav在线| 午夜在线观看视频 | 裸体裸乳免费看 | 在线看国产视频 | 久久中文字幕人妻熟av女蜜柚m | 国产精品视频一二三区 | 伊人影院在线观看 | 顶级嫩模啪啪呻吟不断好爽 | 亚洲另类欧美日韩 | 黑人操中国女人视频 | 一本免费视频 | 日韩中文字幕在线观看 | 国产黄色免费在线观看 | 国产又黄又猛又粗 | 亚洲第一狼人区 | 美女视频免费在线观看 | 精品91自产拍在线观看二区 | 99re8在线精品视频免费播放 | av无毛| 97人妻精品一区二区免费 | 黄色影音 | 少妇免费视频 | 久久久久性色av无码一区二区 | 久久成人在线视频 | 国产精品成人久久电影 | 美女被男人插 | 国产肥老妇视频 | 久久精品欧美视频 | 91九色视频在线 | 强乱中文字幕 | 久久视频免费 | 377p粉嫩大胆色噜噜噜 | 日本黄色美女网站 | 久久国产免费观看 | 日韩欧美操 | 亚洲欧美视频二区 | 在线观看中文字幕一区 | 一区二区三区免费播放 | 久久午夜视频 | 四虎毛片 | 日韩网站在线观看 | a天堂在线| 99这里只有精品视频 | 国产成人手机视频 | 一区二区三区四区日韩 | 日韩资源网 | 中文字幕高潮 | 国产又大又黑又粗免费视频 | 亚洲国产精品久久久久爰色欲 | 中文字幕五码 | 亚洲人av在线 | 亚洲一区二区黄片 | 日韩视频免费观看高清完整版在线观看 | 国产爆操视频 | 欧美精品一级二级 | av永久网站| 国产欧美日韩二区 | 欧美黑人欧美精品刺激 | 欧美精产国品一二三区 | 久久精品国产99精品国产亚洲性色 | 日韩欧美亚洲天堂 | 福利视频h| 国产激情av一区二区三区 | 欧美日韩一区二区在线 | 国产激情久久久久久熟女老人av | 久操视频免费在线观看 | 91社区福利 | 香蕉视频A| 91人人干| 亚洲AV无码成人精品一区 | 国产午夜福利一区二区 | 中国黄色三级视频 | 人妻熟女一区二区aⅴ水野 91在线观看视频 | av大片在线免费观看 | www.xxx.国产| 免费成人深夜夜视频 | 欧美色图在线观看 | 1024亚洲天堂| 日本天堂网 | 精品国产96亚洲一区二区三区 |