同源策略限制從乙個源載入的文件或指令碼如何與來自另乙個源的資源進行互動,這是乙個用於隔離潛在惡意檔案的關鍵的安全機制。
同源策略是為了保證使用者資訊的安全,防止惡意的**竊取資料。
源是由協議,網域名稱,埠構成,不是乙個源的文件無法去操作另乙個源的文件。
限制有:
(1)cookie,localstorage和indexdb無法獲取
(2)dom無法獲取
(3)ajax請求無法傳送
如何避免以上限制?
...//處理引數格式
if(type ===
'get')if
(type ===
'post'
)//響應,監聽成功失敗
xhr.
onload
=function()
}else}}
}
window.
onload
=function()
function
foo(data)
;
//視窗a(http:a.com)像跨域的視窗b傳送訊息
)//接收方的源
//在b視窗監聽
window.
addeventlistener
('message'
,function
(event)
,false
)
var ws =
newwebsocket
('wss:');
ws.onopen
=function
(evt)
;ws.
onmessage
=function
(evt)
ws.onclose
=function
(evt)
access-control-allow-origin:請求時origin欄位的值或者*表示接受任意網域名稱的請求
access-control-alllow-credentials:表示是否允許傳送cookie,ajax請求中也需要設定withcredentials屬性為true
access-control-expose-headers: cors請求時,xmlhttprequest物件的getresponseheader(
)方法只能拿到6個基本字段:cache-control、content-language、content-type、expires、last-modified、pragma。如果想拿到其他字段,就必須在access-control-expose-headers裡面指定。
options /cors http/1.1
origin: : 表示請求來自哪個源
access-control-request-method: put :列出瀏覽器的cors請求會用到哪些http方法
access-control-request-headers: x-custom-header :指定瀏覽器cors請求額外傳送的頭資訊字段。
fetch實現cors通訊
fetch
('/url',)
.then
(response=>).
catch
(err=>
)
js(二) 基礎語法
1.定義變數 沒有變數型別,用var定義變數 var a 19 alert a a hello alert a js寫錯的函式如果不執行不會報錯,屬於動態執行 2.定義函式 function fn1 function fn2 3.變數的型別 var d 10 這個函式用來檢視變數型別 常用型別有nu...
JS基礎學習二
5 在相容xhtml的瀏覽器中使用 cdata js 來解決xhtml對js中的 不能識別問題,而對於不相容xhtml的瀏覽器,可採用js的注釋將cdata標記注釋掉就行了,雖然有幾分hack的味道,但這樣做能通過xhtml驗證,而且也相容html。6 一般採用外部檔案包含的方式來使用js,因為這樣...
JS基礎學習篇(二)
1 新增乙個或多個元素 向陣列最後新增 arr.push ele1,ele2,向陣列最前面新增 arr.unshift ele1,ele2,這兩個方法都會返回新陣列的長度並改變原來的陣列。arr.splice insertpos,0,item1 item2 itemn 將乙個或多個新元素插入到陣列的...