>  기사  >  웹 프론트엔드  >  django에서 jquery ajax 게시 데이터를 사용할 때 403 오류에 대한 해결 방법

django에서 jquery ajax 게시 데이터를 사용할 때 403 오류에 대한 해결 방법

亚连
亚连원래의
2018-05-25 09:32:573741검색

django에서 jquery ajax post 데이터를 사용하면 403 오류가 발생합니다. 해결 방법을 알고 계시나요? 아래에서 두 가지 해결 방법을 공유하겠습니다. 필요한 친구들은 참고하세요.

django에서는 jquery를 사용하세요. Ajax 게시 데이터는 403 오류를 발생시킵니다

방법 1:

jQuery를 사용하여 ajax를 처리하는 경우 Django는 문제를 해결하기 위해 코드 조각을 직접 보냅니다. 별도의 js 파일에 넣어서 html 페이지에 소개합니다. 이 js 파일은 jquery js 파일이 도입된 후에 도입되어야 합니다

$(document).ajaxSend(function(event, xhr, settings) { 
  function getCookie(name) { 
    var cookieValue = null; 
    if (document.cookie && document.cookie != '') { 
      var cookies = document.cookie.split(';'); 
      for (var i = 0; i < cookies.length; i++) { 
        var cookie = jQuery.trim(cookies[i]); 
        // Does this cookie string begin with the name we want? 
        if (cookie.substring(0, name.length + 1) == (name + &#39;=&#39;)) { 
          cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); 
          break; 
        } 
      } 
    } 
    return cookieValue; 
  } 
  function sameOrigin(url) { 
    // url could be relative or scheme relative or absolute 
    var host = document.location.host; // host + port 
    var protocol = document.location.protocol; 
    var sr_origin = &#39;//&#39; + host; 
    var origin = protocol + sr_origin; 
    // Allow absolute or scheme relative URLs to same origin 
    return (url == origin || url.slice(0, origin.length + 1) == origin + &#39;/&#39;) || 
      (url == sr_origin || url.slice(0, sr_origin.length + 1) == sr_origin + &#39;/&#39;) || 
      // or any other URL that isn&#39;t scheme relative or absolute i.e relative. 
      !(/^(\/\/|http:|https:).*/.test(url)); 
  } 
  function safeMethod(method) { 
    return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method)); 
  } 
  if (!safeMethod(settings.type) && sameOrigin(settings.url)) { 
    xhr.setRequestHeader("X-CSRFToken", getCookie(&#39;csrftoken&#39;)); 
  } 
});

방법 2:

게시 데이터를 처리하는 뷰 앞에 @csrf_exempt 데코레이터를 추가합니다

예를 들어

@csrf_exempt 
def profile_delte(request): 
  del_file=request.POST.get("delete_file",&#39;&#39;)

위 내용은 다음과 같습니다. 여러분을 모아봤습니다. 앞으로 모든 분들께 도움이 되길 바랍니다.

관련 기사:

동적 페이징 구현을 위한 ajax + jtemplate에 대한 자세한 설명

요청 프로세스 중 진행 상황을 보여주는 Ajax의 간단한 구현

JQuery Ajax가 동적으로 테이블을 생성합니다

위 내용은 django에서 jquery ajax 게시 데이터를 사용할 때 403 오류에 대한 해결 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.