内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

django如何取消csrf限制-創(chuàng)新互聯(lián)

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

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供福鼎企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作、H5場景定制、小程序制作等業(yè)務(wù)。10年已為福鼎眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

# 導(dǎo)入包

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

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

獲取CSRFTOKEN

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

在前后端分離的項(xiàng)目中(已配置django-cors-headers),無法直接使用js從cookie中獲取csrfToken的值(瀏覽器的同源策略),即使已經(jīng)成功設(shè)置了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是不可行的,因?yàn)樵撝虚g件并沒有期望中csrf校驗(yàn)的功能,下面為該中間件的源代碼。

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

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“django如何取消csrf限制”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

當(dāng)前文章:django如何取消csrf限制-創(chuàng)新互聯(lián)
本文URL:http://www.rwnh.cn/article2/ccigoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、域名注冊外貿(mào)建站、小程序開發(fā)軟件開發(fā)、網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司
昌平区| 沙坪坝区| 云林县| 绍兴市| 商河县| 密云县| 苏尼特右旗| 昌图县| 九台市| 当涂县| 壤塘县| 北安市| 金秀| 临邑县| 鸡西市| 旬阳县| 泽普县| 塘沽区| 左云县| 盘山县| 眉山市| 镇赉县| 加查县| 叙永县| 福鼎市| 同德县| 新泰市| 吉安县| 夏河县| 钟山县| 随州市| 齐齐哈尔市| 枝江市| 永和县| 大化| 黄陵县| 广宁县| 厦门市| 建湖县| 古丈县| 滦平县|