最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Django解決ajax跨域訪問問題

 更新時間:2018年08月24日 09:34:15   作者:rayzz  
這篇文章主要介紹了詳解Django解決ajax跨域訪問問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

這篇文章主要給大家介紹了關(guān)于Django跨域請求問題解決的相關(guān)資料,文中介紹的實(shí)現(xiàn)方法包括:使用django-cors-headers全局控制、使用JsonP,只能用于Get方法以及在views.py里設(shè)置響應(yīng)頭,只能控制單個接口,需要的朋友可以參考下。
使用Django在服務(wù)器端寫了一個API,返回一個JSON數(shù)據(jù)。使用Ajax調(diào)用該API:

但是,Chrome瀏覽器提示錯誤:

No 'Access-Control-Allow-Origin' header is present on the requested resource.

這是由于CORS導(dǎo)致的。

什么是CORS?

CORS(跨域資源共享,Cross-Origin Resource Sharing)是一種跨域訪問的機(jī)制,可以讓Ajax實(shí)現(xiàn)跨域訪問。
其實(shí),在服務(wù)器的response header中,加入“Access-Control-Allow-Origin: *”即可支持CORS,非常的簡單,apache/nginx等怎么配置,見參考文檔。
舉個例子:

  1. API部署在DomainA上;
  2. Ajax文件部署在DomainB上,Ajax文件會向API發(fā)送請求,返回?cái)?shù)據(jù);
  3. 用戶通過DomainC訪問DomainB的Ajax文件,請求數(shù)據(jù)

前端打開的是'http://localhost:63343‘地址, 另一個是django服務(wù)器,打開了‘http://localhost:8000‘地址, 所以在'http://localhost:63343‘的javascript對'http://localhost:8000‘進(jìn)行訪問時,端口不同,屬于跨域訪問.

當(dāng)我將前端頁面放入django中后,就不會出現(xiàn)跨域訪問的拒絕了.

幾種方法:

1.使用JSONP使用Ajax獲取json數(shù)據(jù)時,存在跨域的限制。不過,在Web頁面上調(diào)用js的script腳本文件時卻不受跨域的影響,JSONP就是利用這個來實(shí)現(xiàn)跨域的傳輸。因此,我們需要將Ajax調(diào)用中的dataType從JSON改為JSONP(相應(yīng)的API也需要支持JSONP)格式。
JSONP只能用于GET請求。

2.直接修改Django中的views.py文件修改views.py中對應(yīng)API的實(shí)現(xiàn)函數(shù),允許其他域通過Ajax請求數(shù)據(jù):

 def myview(_request): 
 response = HttpResponse(json.dumps({"key": "value", "key2": "value"}))
 response["Access-Control-Allow-Origin"] = "*" 
 response["Access-Control-Allow-Methods"] = "POST, GET, OPTIONS" 
 response["Access-Control-Max-Age"] = "1000" 
 response["Access-Control-Allow-Headers"] = "*" 
 return response 

3.安裝django-cors-headers這里還有一各發(fā)現(xiàn)!在Django中,有人開發(fā)了CORS-header的middleware,只在settings.py中做一些簡單的配置即可,開啟CORS,沒有跨域煩惱,真爽!~

django-cors-headers

首先安裝

pip install django-cors-headers

然后在settings.py里配置一番就可以

 INSTALLED_APPS = [ 
  ... 
  'corsheaders', 
  ... ] 
 MIDDLEWARE_CLASSES = ( 
  ... 
  'corsheaders.middleware.CorsMiddleware', 
  'django.middleware.common.CommonMiddleware', # 注意順序 
  ... 
 ) 
#跨域增加忽略 
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = ( '*') 
CORS_ALLOW_METHODS = ( 'DELETE', 'GET', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'VIEW', ) 
CORS_ALLOW_HEADERS = ( 
'XMLHttpRequest', 
'X_FILENAME', 
'accept-encoding', 
'authorization', 
'content-type', 
'dnt',
'origin', 
'user-agent', 
'x-csrftoken', 
'x-requested-with', 
'Pragma', 
) 

大功告成了。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Flask response響應(yīng)的具體使用

    Flask response響應(yīng)的具體使用

    在flask中,想要給前端頁面返回?cái)?shù)據(jù),必須是Response的對象,本文介紹了Flask response響應(yīng)的使用,感興趣的可以了解一下
    2021-07-07
  • Python3實(shí)現(xiàn)的畫圖及加載圖片動畫效果示例

    Python3實(shí)現(xiàn)的畫圖及加載圖片動畫效果示例

    這篇文章主要介紹了Python3實(shí)現(xiàn)的畫圖及加載圖片動畫效果,結(jié)合實(shí)例形式分析了Python3基于tkinter庫進(jìn)行圖片加載動畫效果的相關(guān)實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下
    2018-01-01
  • Pandas中常用的七個時間戳處理函數(shù)使用總結(jié)

    Pandas中常用的七個時間戳處理函數(shù)使用總結(jié)

    在零售、經(jīng)濟(jì)和金融等行業(yè),數(shù)據(jù)總是由于貨幣和銷售而不斷變化,生成的所有數(shù)據(jù)都高度依賴于時間。如果這些數(shù)據(jù)沒有時間戳或標(biāo)記,實(shí)際上很難管理所有收集的數(shù)據(jù)。本文為大家準(zhǔn)備了Pandas中常用的七個時間戳處理函數(shù),需要的可以參考一下
    2022-04-04
  • 在DOS界面如何運(yùn)行python的py文件

    在DOS界面如何運(yùn)行python的py文件

    這篇文章主要介紹了在DOS界面如何運(yùn)行python的py文件,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • python如何輸入根號

    python如何輸入根號

    這篇文章主要介紹了python如何輸入根號,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python中requests小技巧

    python中requests小技巧

    Requests 使用的是 urllib3,因此繼承了它的所有特性。Requests 支持 HTTP 連接保持和連接池,支持使用 cookie 保持會話,支持文件上傳,支持自動確定響應(yīng)內(nèi)容的編碼,支持國際化的 URL 和 POST 數(shù)據(jù)自動編碼?,F(xiàn)代、國際化、人性化。
    2017-05-05
  • 簡單了解Python字典copy與賦值的區(qū)別

    簡單了解Python字典copy與賦值的區(qū)別

    這篇文章主要介紹了簡單了解Python字典copy與賦值區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Python 最強(qiáng)編輯器詳細(xì)使用指南(PyCharm )

    Python 最強(qiáng)編輯器詳細(xì)使用指南(PyCharm )

    這篇文章主要介紹了Python 最強(qiáng)編輯器詳細(xì)使用指南(PyCharm),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • python購物車程序簡單代碼

    python購物車程序簡單代碼

    這篇文章主要為大家詳細(xì)介紹了python購物車程序的簡單代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Python 實(shí)現(xiàn)Excel XLS和XLSX格式相互轉(zhuǎn)換問題

    Python 實(shí)現(xiàn)Excel XLS和XLSX格式相互轉(zhuǎn)換問題

    本文介紹如何使用Python庫Spire.XLS for Python實(shí)現(xiàn)Excel文件的XLS和XLSX格式轉(zhuǎn)換,提供了詳細(xì)的安裝指南和轉(zhuǎn)換步驟,幫助用戶在不同版本的Excel文件格式之間靈活轉(zhuǎn)換,同時支持將Excel文件轉(zhuǎn)換為PDF、圖片、HTML等格式
    2024-10-10

最新評論

珠海市| 凭祥市| 博罗县| 左权县| 阳谷县| 曲松县| 梅河口市| 兴安盟| 富民县| 上林县| 阿克陶县| 固始县| 石门县| 仙桃市| 沅陵县| 南安市| 原平市| 玉龙| 酒泉市| 华亭县| 云梦县| 金山区| 远安县| 黄骅市| 涿州市| 苍山县| 华宁县| 仲巴县| 灌南县| 新宁县| 察隅县| 吉林市| 乐安县| 平原县| 铜陵市| 嘉禾县| 灌南县| 敦煌市| 长沙县| 荃湾区| 绥中县|