成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

跨域問題的根本解決方案CORS

Joonas / 1234人閱讀

摘要:介紹關(guān)于跨域問題有很多的解決方案,這里我們總結(jié)一下目前最通用最強(qiáng)大的解決方案。的工作組推薦了一種新的機(jī)制,即跨域資源共享,簡稱。預(yù)檢請求用的請求方法是,表示這個(gè)請求是用來詢問的。頭信息里面,關(guān)鍵字段是,表示請求來自哪個(gè)源。

介紹

關(guān)于跨域問題有很多的解決方案,這里我們總結(jié)一下目前最通用最強(qiáng)大的解決方案:CORS。

W3C 的 Web 工作組推薦了一種新的機(jī)制,即跨域資源共享(Cross-origin Resource Sharing),簡稱CORS。其實(shí)這個(gè)機(jī)制就是實(shí)現(xiàn)了跨站訪問控制,使得安全地進(jìn)行跨站數(shù)據(jù)傳輸成為可能。

跨源資源共享標(biāo)準(zhǔn)( cross-origin sharing standard) 使得以下場景可以使用跨站 HTTP 請求:

使用 XMLHttpRequest 或 Fetch發(fā)起跨站 HTTP 請求。

Web 字體 (CSS 中通過 @font-face 使用跨站字體資源),因此,網(wǎng)站就可以發(fā)布 TrueType 字體資源,并只允許已授權(quán)網(wǎng)站進(jìn)行跨站調(diào)用。

WebGL 貼圖

使用drawImage繪制

Images/video 畫面到canvas.

樣式表(使用 CSSOM)

Scripts (for unmuted exceptions)

CORS分為簡單請求復(fù)雜請求,處理方法也是有不同的,所以我們分別總結(jié)。

簡單請求

什么是簡單請求呢?同時(shí)滿足以下兩個(gè)條件,就是簡單請求:

請求是下列之一:
HEAD
GET
POST

HTTP的頭信息不超出以下幾種字段:
Accept
Accept-Language
Content-Language
Last-Event-ID
Content-Type:只限于三個(gè)值application/x-www-form-urlencoded、multipart/form-data、text/plain

實(shí)現(xiàn)方法非常簡單,只需要把服務(wù)器的響應(yīng)報(bào)文里的Access-Control-Allow-Origin設(shè)置為*或者包含由 Origin指明的站點(diǎn)。

Access-Control-Allow-OriginHTTP響應(yīng)報(bào)文中的一個(gè)字段,OriginHTTP請求報(bào)文中的以一個(gè)字段,如果不清楚這兩個(gè)字段的話,可以自行查閱關(guān)于HTTP報(bào)文的知識(shí),比如HTTP | MDN。

復(fù)雜請求

如果不是簡單請求,那就是復(fù)雜請求,比如請求的方法是PUT或者DELETE,比如Content-Type字段的類型是application/json,比如設(shè)置了自定義頭信息。

復(fù)雜請求就是比簡單請求多了個(gè)預(yù)檢請求(preflight)而已。

預(yù)檢請求就是瀏覽器先詢問服務(wù)器,當(dāng)前網(wǎng)頁所在的域名是否在服務(wù)器的許可名單之中,以及可以使用哪些HTTP動(dòng)詞和頭信息字段。只有得到肯定答復(fù),瀏覽器才會(huì)發(fā)出正式的XMLHttpRequest請求,否則就報(bào)錯(cuò)。

預(yù)檢請求用的請求方法是OPTIONS,表示這個(gè)請求是用來詢問的。頭信息里面,關(guān)鍵字段是Origin,表示請求來自哪個(gè)源。除了Origin字段,還有兩個(gè)字段非常重要:Access-Control-Request-MethodAccess-Control-Request-Headers,分別表示允許的請求方法和請求頭。

舉一個(gè)具體的例子:

現(xiàn)在,我們有一個(gè)頁面向服務(wù)器發(fā)送了一個(gè)POST請求,并且我們自己定義了一個(gè)請求頭字段My-HEADER,這時(shí)候?yàn)g覽器就會(huì)首先發(fā)送一個(gè)OPTION請求來做預(yù)檢請求,請求頭里有以下字段:

Access-Control-Request-Method: POST
Access-Control-Request-Headers: My-HEADER

如果預(yù)檢請求成功的話,響應(yīng)頭里的內(nèi)容如下:

Access-Control-Allow-Origin: http://example.com //表明服務(wù)器允許http://example.com的請求
Access-Control-Allow-Methods: POST, GET, OPTIONS //表明服務(wù)器可以接受POST, GET和 OPTIONS的請求方法
Access-Control-Allow-Headers: My-HEADER //傳遞一個(gè)可接受的自定義請求頭列表
Access-Control-Max-Age: 3000000 //告訴瀏覽器,本次預(yù)檢請求的響應(yīng)結(jié)果有效時(shí)間是多久
總結(jié)

以上就是CORS方法解決跨域問題的流程,CORS支持所有類型的HTTP請求,是目前跨域問題的根本解決方案。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/107485.html

相關(guān)文章

  • 一篇文章搞明白CORS跨域

    摘要:跨域?qū)嵲谑敲嬖嚬僖粋€(gè)人的利器。首先,什么是是一個(gè)標(biāo)準(zhǔn),全稱是跨域資源共享。它的值是一個(gè)布爾值,表示是否允許發(fā)送。設(shè)為,即表示服務(wù)器明確許可,可以包含在請求中,一起發(fā)給服務(wù)器。 面試問到數(shù)據(jù)交互的時(shí)候,經(jīng)常會(huì)問跨域如何處理。大部分人都會(huì)回答JSONP,然后面試官緊接著就會(huì)問:JSONP缺點(diǎn)是什么?。窟@個(gè)時(shí)候坑就來了,如果面試者說它支持GET方式,然后面試官就會(huì)追問,那如果POST方式發(fā)送...

    tanglijun 評論0 收藏0
  • 前端跨域解決方案

    摘要:但是如果是一級域名相同,二級及以上域名不同的網(wǎng)頁可以通過設(shè)置來共享。設(shè)置有兩種方式前端腳本中設(shè)置服務(wù)器接口設(shè)置時(shí)指定所屬的域名為一級域名。服務(wù)器檢查過預(yù)檢請求頭之后,確認(rèn)允許跨域請求,就可以做出回應(yīng)。 一、跨域問題產(chǎn)生的原因 根本原因是由于瀏覽器的同源政策。 1.1.同源政策 同源政策由網(wǎng)景公司(Netscape)1995年引入瀏覽器。目前所有瀏覽器都實(shí)行這個(gè)政策。所謂同源是指三個(gè)相同...

    wayneli 評論0 收藏0
  • AJAX 跨域解析

    摘要:這里只講解了兩種常見的跨域方式,因?yàn)榇嬖谝恍┍锥?,因此推薦使用等方式來解決跨域問題。 一、什么是 AJAX 跨域問題 同源策略規(guī)定,AJAX 請求(XMLHttpRequest)只能發(fā)給同源的網(wǎng)址,否則就會(huì)出錯(cuò)。所謂的同源策略是指 3 個(gè)相同:協(xié)議相同、域名相同、端口相同。 比如 http://www.example.com/index.html 這個(gè)網(wǎng)址,協(xié)議是http ,域名是 w...

    tinylcy 評論0 收藏0
  • 淺談前端跨域

    摘要:一什么是跨域跨域簡單的理解就是同源策略的限制。同源策略限制的內(nèi)容請求不能正常進(jìn)行。同源策略默認(rèn)地址是網(wǎng)頁的本身。 一、什么是跨域? 跨域簡單的理解就是JavaScript同源策略的限制。是出于安全的考慮,a.com域名下的js不能操作b.com或者c.com域名下的對象。 當(dāng)協(xié)議、子域名、主域名、端口號(hào)中任意一個(gè)不相同時(shí),都算作不同域。不同域之間相互請求資源,就算叫跨域。 一個(gè)正常...

    dunizb 評論0 收藏0
  • 跨域理解

    摘要:什么是跨域個(gè)人一句話解釋如果與不同源,那么頁面不能獲取頁面的資源。所以用同源策略來限制跨域是必須的。它是標(biāo)準(zhǔn),是跨源請求的根本解決方法。 本文整理了一些有關(guān)跨域的基礎(chǔ)知識(shí)和細(xì)節(jié)問題。 什么是跨域 個(gè)人一句話解釋:如果 url A 與 url B 不同源,那么頁面A不能獲取頁面B的資源。這里有兩個(gè)關(guān)鍵詞:url 和 同源,瀏覽器的同源策略就是針對兩個(gè)url,它們滿足以下三個(gè)條件,才是同源...

    zhongmeizhi 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<