如果兩個位址的 協議, 位址,埠 三者任何乙個不一樣 傳送ajax請求就會發生跨域的行為。
在公司開發的過程中, 只需要自己給瀏覽器設定特定的字段,禁用了他的安全協議就可以任意訪問。
在原始桌面瀏覽器上面 右鍵新建快捷方式, 然後再上面右鍵 檢視屬性;
然後再屬性的目標位置, 加上乙個空格,再接上下面的一段話;
並且要在c潘下面建立 乙個下面的目錄
--disable-web-security --user-data-dir=
c:\mychromedevuserdata
--
cors(cross-origin resource sharing)跨域資源共享,定義了必須在訪問跨域資源時,
瀏覽器與伺服器應該如何溝通。
--cors的基本思想就是使用自定義的http頭部讓瀏覽器與伺服器進行溝通,從而決定請求或響應是應該成功還是失敗。
-- 目前,所有瀏覽器都支援該功能,ie瀏覽器不能低於ie10。整個cors通訊過程,都是瀏覽器自動完成,不需要使用者參與。
-- 對於開發者來說,cors通訊與同源的ajax通訊沒有差別,**完全一樣。
-- 瀏覽器一旦發現ajax請求跨源,就會自動新增一些附加的頭資訊,有時還會多出一次附加的請求,
但使用者不會有感覺。
瀏覽器將cors請求分成兩類:簡單請求(****** request)和非簡單請求(not-so-****** request)。
只要同時滿足以下兩大條件,就屬於簡單請求。
1、請求方法是以下三種方法之一:
head、get、post
2、http的頭資訊不超出以下幾種字段:
accept
accept-language
content-language
last-event-
id凡是不同時滿足上面兩個條件,就屬於非簡單請求。瀏覽器對這兩種請求的處理,是不一樣的。
response headers 後端傳遞到前端的請求頭
request headers 這個是前端傳遞給後端的請求頭
-- access-control-allow-origin 是允許跨域的網域名稱
-- access-control-allow-methods
是允許的請求方式 (簡單請求指的是get
post
head)
-- access-control-allow-headers
跨域允許包含的頭,指定瀏覽器cors請求會額外傳送的頭資訊字段
-- access-control-allow-credentials
true 表示是否允許傳送cookie, 只能設定為true, 這個要對應前端庫例如 axios 開啟
withcredentials屬性
-- access-control-allow-credentials 響應頭表示是否可以將對請求的響應暴露給頁面。返回true則可以,
其他值均不可以。
-- access-control-allow-credentials 頭 工作中與xmlhttprequest.withcredentials 或fetch api中的
request
() 構造器中的credentials 選項結合使用。credentials必須在前後端都被配置.
(即the access-control-allow-credentials header 和 xhr 或fetch request中都要配置)才能使帶
credentials的cors請求成功。
-- 前面有提到http頭部和cors跨域請求,cors全稱cross-origin resource sharing,也就是跨域資源共享,
瀏覽器出於安全角度考慮限制跨域http請求,這就是同源策略,所以後端需要設定請求頭部才能允許跨域。
CORS跨域原理
請求 響應 access control allow credentials true access control allow origin 預撿請求 request method options accept language zh cn,en q 0.8,zh q 0.6 access con...
CORS跨域請求
瀏覽器的同源策略會導致跨域,這裡同源策略又分為以下兩種 只要協議 網域名稱 埠有任何乙個不同,都被當作是不同的域,之間的請求就是跨域操作。在同源策略下會禁止跨域,實際上跨域請求時,請求會向伺服器發出,伺服器也會進行響應,但是當收到返回的資料時發現跨域所以忽略了返回的內容並報錯。當請求同時滿足下面兩個...
跨域解決CORS
1.js跨域 js跨域是指通過js在不同的域之間進行資料傳輸或通訊,比如用ajax向乙個不同的域請求資料,或者通過js獲取頁面中不同域的框架中 iframe 的資料。只要協議 網域名稱 埠有任何乙個不同,都被當作是不同的域。localhost 9000中的ajax 向localhost 9001中的...