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

溫馨提示×

溫馨提示×

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

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

django如何取消csrf限制

發布時間:2021-05-25 10:22:06 來源:億速云 閱讀:376 作者:小新 欄目:開發技術

這篇文章主要介紹了django如何取消csrf限制,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

# 導入包

from django.views.decorators.csrf import csrf_exempt

# 使用裝飾器即可避免csrf限制

@csrf_exempt
def add_bookshelf(request):
  user_id = request.POST.get('user_id')
  print(user_id)
  return HttpResponse('123')

補充知識:Django 前后端分離跨域AJAX獲取csrftoken及獲取cookie時遇到的問題

獲取CSRFTOKEN

Django的中間件'django.middleware.csrf.CsrfViewMiddleware'會將csrftoken的值設置在cookie中。在前后端不分離的項目中,若需要在AJAX使用csrftoken的值則可在js腳本中通過document.cookie直接獲取cookie的值(也可以通過其他更快捷的輪子如js-cookie)。

在前后端分離的項目中(已配置django-cors-headers),無法直接使用js從cookie中獲取csrfToken的值(瀏覽器的同源策略),即使已經成功設置了csrfToken的cookie值

django如何取消csrf限制

解決方法

在中間件中引入

corsheaders.middleware.CorsPostCsrfMiddleware

'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'corsheaders.middleware.CorsPostCsrfMiddleware',

有些博客中使用該中間件替代django.middleware.csrf.CsrfViewMiddleware是不可行的,因為該中間件并沒有期望中csrf校驗的功能,下面為該中間件的源代碼。

class CorsPostCsrfMiddleware(MiddlewareMixin):

  def _https_referer_replace_reverse(self, request):
    """
    Put the HTTP_REFERER back to its original value and delete the
    temporary storage
    """
    if conf.CORS_REPLACE_HTTPS_REFERER and 'ORIGINAL_HTTP_REFERER' in request.META:
      http_referer = request.META['ORIGINAL_HTTP_REFERER']
      request.META['HTTP_REFERER'] = http_referer
      del request.META['ORIGINAL_HTTP_REFERER']

  def process_request(self, request):
    self._https_referer_replace_reverse(request)
    return None

  def process_view(self, request, callback, callback_args, callback_kwargs):
    self._https_referer_replace_reverse(request)
    return None

感謝你能夠認真閱讀完這篇文章,希望小編分享的“django如何取消csrf限制”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

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

AI

牙克石市| 井研县| 泸西县| 遵化市| 陆良县| 宁阳县| 阜新| 许昌市| 高雄市| 凌云县| 阿拉善右旗| 桓台县| 拜城县| 尤溪县| 鄂温| 南投县| 安塞县| 报价| 曲周县| 元谋县| 晋州市| 宝应县| 库伦旗| 武强县| 康乐县| 武胜县| 来凤县| 根河市| 临高县| 郑州市| 石家庄市| 临武县| 墨脱县| 长泰县| 临泽县| 富阳市| 乃东县| 扶风县| 辽阳市| 上虞市| 东山县|