同源策略jsonp和cors

2022-08-29 18:21:12 字數 3235 閱讀 7936

同源策略(same origin policy)是一種約定,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,則瀏覽器的正常功能可能都會受到影響。可以說web是構建在同源策略基礎之上的,瀏覽器只是針對同源策略的一種實現。

專案1

***************==專案的index**********==

doctype html

>

<

html

lang

="en"

>

<

head

>

<

meta

charset

="utf-8"

>

<

title

>title

title

>

<

script

src=""

>

script

>

head

>

<

body

>

<

button

>ajax

button

>

<

script

>$("

button

").click(

function

(), success:

function

(data)

})})

script

>

body

>

html

>

專案2

***************===專案的index***************=

sendajax

***************====專案的views********************

def index(request):

return render(request,"index.html")

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt

def sendajax(request): # 不校驗csrf_token

當點選專案1的按鈕時,傳送了請求,但是會發現報錯如下:

已攔截跨源請求:同源策略禁止讀取位於 /sendajax/ 的遠端資源。(原因:cors 頭缺少 'access-control-allow-origin')

>洗剪吹

jsonp: 'callbacks'就是定義乙個存放**函式的鍵,jsonpcallback是前端定義好的**函式方法名'ret',server端接受callback鍵對應值後就可以在其中填充資料打包返回了; 

jsonpcallback引數可以不定義,jquery會自動定義乙個隨機名發過去,那前端就得用**函式來處理對應資料了。利用jquery可以很方便的實現jsonp來進行跨域訪問。

$(".get_index").click(function () 

html+=''+weekday.week+'

'; $.each(weekday.list,function (j,show) )

});}

})})

cors需要瀏覽器和伺服器同時支援。目前,所有瀏覽器都支援該功能,ie瀏覽器不能低於ie10。

整個cors通訊過程,都是瀏覽器自動完成,不需要使用者參與。對於開發者來說,cors通訊與同源的ajax通訊沒有差別,**完全一樣。瀏覽器一旦發現ajax請求跨源,就會自動新增一些附加的頭資訊,有時還會多出一次附加的請求,但使用者不會有感覺。

因此,實現cors通訊的關鍵是伺服器。只要伺服器實現了cors介面,就可以跨源通訊。

responce["access-control-allow-origin"] = "*" #表示所有訪問通過

return responce

同源策略Jsonp

同源策略 same origin policy 是一種約定,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,則瀏覽器的正常功能可能都會受到影響。可以說web是構建在同源策略基礎之上的,瀏覽器只是針對同源策略的一種實現。何為同源 協議,網域名稱,埠都相同 如果非同源,那麼在請求資料時,瀏覽器會...

CORS同源策略

所謂同源策略,所謂同源是指,網域名稱,協議,埠相同。它是瀏覽器的一種最核心最基本的安全策略。它對來至不同源的文件或這指令碼對當前文件的讀寫操作做了限制。為什麼要有這個策略,想必你已經知道,那就是因為保證使用者的資訊保安。訪問同源的資源是被瀏覽器允許的,但是如果訪問不同源的資源,瀏覽器預設是不允許的。...

CORS跨域和同源策略

同源策略 先來說說什麼是源 源 origin 就是協議 網域名稱和埠號。以上url中的源就是 若位址裡面的協議 網域名稱和埠號均相同則屬於同源。以下是相對於 的同源檢測 成功 失敗,網域名稱不同 失敗,協議不同 失敗,埠號不同 2.什麼是同源策略?同源策略是瀏覽器的乙個安全功能,不同源的客戶端指令碼...