AFei0018-博客
窮則思變,差則思勤。Python技術交流|求職招聘群:551022575
django解決跨域請求的問題
django解決跨域請求的問題
解決方案
1.安裝django-cors-headers
pip install django-cors-headers
- 1
2.配置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', )
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
OK!問題解決!
其他解決方案
另外還從網上看到其他兩種解決方案,但都不太合適。在此列出,供大家參考
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
- Tyler_ 2018-04-18 15:35:44#5樓“我們需要將Ajax調用中的dataType從JSON改為JSONP(相應的API也需要支持JSONP)格式。” 括號里那句話把我從夢中驚醒!!!謝謝您!!
- 小恩阿 2018-03-09 15:55:17#4樓難得評論,這個方法很管用 本人用的是 React + Antd + Django ajax 用的axios options方法請求 可以!
- Ashimar_ZHZ 2017-11-10 11:33:12#3樓謝謝博主分享
- Unname_Bao 2017-10-28 16:03:37#2樓添加也沒用
- qq_21578571 2017-05-23 16:13:40#1樓按照你的方法修改了,但是不起效果查看回復(1)
django處理Ajax跨域訪問
問題描述在使用javascript進行ajax訪問的時候,出現如下錯誤 出錯原因:javascript處於安全考慮,不允許跨域訪問. 下圖是對跨域訪問的解釋: (圖片是從慕課網上的 “Aja...
ajax跨域設置django-cors-headers
安裝 pip install django-cors-headers 然后將其添加到已安裝的應用程序中: INSTALLED_APPS =( ... ' corshea...
初入Django5-jsonp實現跨域請求
python-Django-jsonp實現跨域請求 什么叫jsonp?和json有什么關系? json: 一種數據類型 跨語言交流,實現數據共享 jsonp:一種請求方式 跨域請求,脫離瀏覽器...
CORS(跨域資源共享) 的配置
http://blog.csdn.net/ohyoyo2014/article/details/24863197 兼容情況: 各種新版本的ie10,firefox,op...
Nginx+uwsgi+django 解決Ajax跨域
Django + Nginx + uwsgi 項目使用ajax 外部請求跨域問題: 問題描述: Font from origin 'http://cdn.xxxx.com' has been ...
vscode 編寫djangorestapi--解決跨域和權限
新建django項目 django-admin.py startproject my_data #my_data 是項目名 建立app django-admin.py startapp...
【Flask】Flask解決跨域的問題
在Flask開發RESTful后端時,前端請求會遇到跨域的問題。下面是解決方法。Python版本:3.5.1 下載flask_cors包 pip install flask-cors ...
flask 設置headers['Access-Control-Allow-Origin']='*'實現跨域訪問
需要flask將數據發送到web前端,定義一個路由,訪問該路由獲取數據。 res= make_response(json.dumps(result)): 通過make_response封裝...
個人分類
歸檔
熱門文章
- Ubuntu16.04下python+PyCharm開發環境的搭建
閱讀量:19190
- django解決跨域請求的問題
閱讀量:11406
- python實現數據導出到excel--普通格式
閱讀量:9563
- 通過Navicat遠程連接MySQL配置
閱讀量:8938
- Celery+python+redis異步執行定時任務
閱讀量:8139
最新評論
- Ubuntu16.04下pytho...
yonghu14587007:下載文件的位置一定要找對
- django解決跨域請求的問題
u012695283:“我們需要將Ajax調用中的dataType從JSON改為JSONP(相應的API也需要支持JSO...
- django 數據序列化的實現
apple9005:[reply]qq_23934063[/reply] 序列化方法里面沒有加反查的功能,你可以自己擴...
- django 數據序列化的實現
qq_23934063:通過 Menu 查 Group 應該怎么寫
- CENTOS7錯誤:Cannot ...
qq_37011273:成功解決我的問題,萬分感謝!