91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django中怎么解決ajax跨域訪問問題

發布時間:2021-07-20 16:06:46 來源:億速云 閱讀:229 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關Django中怎么解決ajax跨域訪問問題,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

這篇文章主要給大家介紹了關于Django跨域請求問題解決的相關資料,文中介紹的實現方法包括:使用django-cors-headers全局控

什么是CORS?

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

  1. API部署在DomainA上;

  2. Ajax文件部署在DomainB上,Ajax文件會向API發送請求,返回數據;

  3. 用戶通過DomainC訪問DomainB的Ajax文件,請求數據

Django中怎么解決ajax跨域訪問問題

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

當我將前端頁面放入django中后,就不會出現跨域訪問的拒絕了.

幾種方法:

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

2.直接修改Django中的views.py文件修改views.py中對應API的實現函數,允許其他域通過Ajax請求數據:

 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這里還有一各發現!在Django中,有人開發了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', 
)

關于Django中怎么解決ajax跨域訪問問題就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江山市| 万载县| 车致| 元谋县| 和硕县| 乌拉特中旗| 水富县| 洪湖市| 寿光市| 涟源市| 资阳市| 会同县| 新巴尔虎左旗| 永和县| 新蔡县| 石河子市| 大邑县| 砀山县| 博罗县| 台江县| 科技| 新河县| 盖州市| 定南县| 连州市| 祥云县| 云阳县| 丘北县| 华容县| 彭泽县| 北京市| 临泽县| 云梦县| 铜陵市| 临猗县| 石河子市| 清新县| 麻城市| 翁牛特旗| 荥经县| 盘山县|