欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

django解決跨域請求的問題詳解

 更新時間:2019年01月20日 08:31:06   作者:AFei0018  
這篇文章主要介紹了django解決跨域請求的問題詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

解決方案

1.安裝django-cors-headers

pip install django-cors-headers

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',
)

OK!問題解決!

其他解決方案

另外還從網上看到其他兩種解決方案,但都不太合適。在此列出,供大家參考

1.使用JSONP

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

JSONP只能用于GET請求。

2.直接修改Django中的views.py文件

修改views.py中對應API的實現(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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論