同源策略(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.什麼是同源策略?同源策略是瀏覽器的乙個安全功能,不同源的客戶端指令碼...