cors和ajax的差別是什麼

WBOY
發布: 2022-07-01 16:52:27
原創
1410 人瀏覽過

cors和ajax的差別在於:cors請求時會在HTTP請求頭header中加入幾個關鍵字,用於表示目前請求時跨網域請求,而ajax請求時不會加入這些關鍵字; cors是「Cross-origin resource sharing」的縮寫,表示跨域資源共享。

cors和ajax的差別是什麼

本文操作環境:windows10系統、javascript1.8.5&&html5版、Dell G3電腦。

CORS 和Ajax 區別:

CORS 和Ajax 在發送請求時沒有任何區別,都是http請求,唯一區別就是CORS 請求時,會在http請求頭header 中加入幾個關鍵字,用來表示目前請求是跨域請求。

擴展知識:

CORS是一個W3C標準,全名為"跨域資源共享"(Cross-origin resource sharing)。我們知道,用瀏覽器發送 http 請求(ajax)就存在跨域的問題,現在主流的解決跨域方案就是 CORS。

這裡特別強調,我們常說的跨域只是瀏覽器的限制,如果我們用腳本發送請求或透過伺服器請求,都不不會有跨網域問題,這其中主要原因是瀏覽器使用門檻非常低,為了防止別有用心的人攻擊普通用戶,所以引入跨域策略

CORS簡介

CORS是W3C 在2014年1月16日發布的一個正式推薦的通訊標準,主要解決用戶代理的Web應用透過Ajax或其他機制從另一個站點存取資源、取得資料的問題。

前提:服務端需要新增支援CORS的相關功能,也就是設定http的Access-Control-Allow-Origin 允許的值

CORS的通訊都由瀏覽器完成,不需要用戶參與。預設瀏覽都是透過Ajax通信,如果瀏覽器在發送請求時監測到當前請求跨域了,就會自動轉成CORS

CORS的兩種請求模式

瀏覽器將CORS請求分成兩類:簡單請求和非簡單請求

#簡單請求就是使用設定的請求方式請求資料

非簡單請求則是在使用設定的請求方式請求資料之前,先發送一個OPTIONS請求,看服務端是否允許客戶端發送非簡單請求.只有"預檢"通過後才會再發送一次請求用於資料傳輸

只要同時滿足以下兩大條件,就屬於簡單請求。

條件一:

請求方法是以下三種方法之一:

HEAD

GET

#POST

條件二:

HTTP的頭資訊不超出以下幾種欄位:

Accept
Accept-Language
Content-Language
Last-Event-ID
Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain
登入後複製

簡單請求

簡單請求就是瀏覽器直接傳送一個CORS請求(ajax請求)。在發送之前,瀏覽器會為本次http請求新增一個請求頭 Origin

上面的頭資訊中, Origin 欄位用來說明,本次請求來自哪個來源(協定 網域名稱 連接埠)。伺服器根據這個值,決定是否同意這次請求。

非簡單請求

非簡單請求就是再發送請求前先發送一個OPTIONS 請求,提前檢測一下請求是否被允許,主要目的是為了防止跨域請求對後台數據的破壞或盜取,簡單請求安全性較低,伺服器是處理了請求後再返回數據,非簡單請求模式下,伺服器在提前檢測時不應該處理請求。

【相關教學推薦:AJAX影片教學

以上是cors和ajax的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!