您好,登錄后才能下訂單哦!
這篇文章主要講解了“cors和ajax的區(qū)別有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“cors和ajax的區(qū)別有哪些”吧!
cors和ajax的區(qū)別是:cors請求時(shí)會在HTTP請求頭header中添加幾個(gè)關(guān)鍵字,用于表示當(dāng)前請求時(shí)跨域請求,而ajax請求時(shí)不會添加這些關(guān)鍵字;cors是“Cross-origin resource sharing”的縮寫,表示跨域資源共享。
本文操作環(huán)境:windows10系統(tǒng)、javascript1.8.5&&html5版、Dell G3電腦。
CORS 和 Ajax 區(qū)別:
CORS 和 Ajax 在發(fā)送請求時(shí)沒有任何區(qū)別,都是http請求,唯一區(qū)別就是 CORS 請求時(shí),會在 http請求頭 header 中添加幾個(gè)關(guān)鍵詞,用來表示當(dāng)前請求是跨域請求。
擴(kuò)展知識:
CORS是一個(gè)W3C標(biāo)準(zhǔn),全稱是"跨域資源共享"(Cross-origin resource sharing)。我們知道,用瀏覽器發(fā)送 http 請求(ajax)就存在跨域的問題,現(xiàn)在主流的解決跨域方案就是 CORS。
這里特別強(qiáng)調(diào),我們經(jīng)常說的跨域只是瀏覽器的限制,如果我們用腳本發(fā)送請求或者通過服務(wù)器請求,都不不會有跨域問題,這其中主要原因是瀏覽器使用門檻非常低,為了防止別有用心的人攻擊普通用戶,所以引入跨域策略
CORS簡介
CORS是 W3C 在2014年1月16日發(fā)布的一個(gè)正式推薦的通信標(biāo)準(zhǔn),主要解決用戶代理的Web應(yīng)用通過Ajax或者其他機(jī)制從另一個(gè)站點(diǎn)訪問資源、獲取數(shù)據(jù)的問題。
前提:服務(wù)端需要添加支持CORS的相關(guān)功能,即設(shè)定http的 Access-Control-Allow-Origin 允許的值
CORS的通信都由瀏覽器完成,不需要用戶參與。默認(rèn)瀏覽都是通過Ajax通信,如果瀏覽器在發(fā)送請求時(shí)監(jiān)測到當(dāng)前請求跨域了,就會自動轉(zhuǎn)成CORS
CORS的兩種請求模式
瀏覽器將CORS請求分成兩類:簡單請求和非簡單請求
簡單請求就是使用設(shè)定的請求方式請求數(shù)據(jù)
非簡單請求則是在使用設(shè)定的請求方式請求數(shù)據(jù)之前,先發(fā)送一個(gè)OPTIONS請求,看服務(wù)端是否允許客戶端發(fā)送非簡單請求.只有"預(yù)檢"通過后才會再發(fā)送一次請求用于數(shù)據(jù)傳輸
只要同時(shí)滿足以下兩大條件,就屬于簡單請求。
條件一:
請求方法是以下三種方法之一:
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
簡單請求
簡單請求就是瀏覽器直接發(fā)送一個(gè)CORS請求(ajax請求)。發(fā)送之前,瀏覽器會給本次http請求添加一個(gè)請求頭 Origin
上面的頭信息中, Origin 字段用來說明,本次請求來自哪個(gè)源(協(xié)議 + 域名 + 端口)。服務(wù)器根據(jù)這個(gè)值,決定是否同意這次請求。
非簡單請求
非簡單請求就是再發(fā)送請求前先發(fā)送一個(gè) OPTIONS 請求,提前檢測一下請求是否被允許,主要目的是為了防止跨域請求對后臺數(shù)據(jù)的破壞或盜取,簡單請求安全性較低,服務(wù)器是處理了請求后再返回?cái)?shù)據(jù),非簡單請求模式下,服務(wù)器在提前檢測時(shí)不應(yīng)該處理請求。
感謝各位的閱讀,以上就是“cors和ajax的區(qū)別有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對cors和ajax的區(qū)別有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。