Django에서 jquery ajax post 데이터를 사용하면 403 오류가 발생합니다. 어떻게 해결하나요? Django에서 ajax post 데이터를 사용할 때 403 오류를 해결하도록 도와드리겠습니다. 필요하신 분들은 참고하시면 됩니다
이 글에서는 jquery ajax post 데이터를 사용할 때 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 = ; i < cookies.length; i++) { var cookie = jQuery.trim(cookies[i]); // Does this cookie string begin with the name we want? if (cookie.substring(, name.length + ) == (name + '=')) { cookieValue = decodeURIComponent(cookie.substring(name.length + )); 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 = '//' + host; var origin = protocol + sr_origin; // Allow absolute or scheme relative URLs to same origin return (url == origin || url.slice(, origin.length + ) == origin + '/') || (url == sr_origin || url.slice(, sr_origin.length + ) == sr_origin + '/') || // or any other URL that isn'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('csrftoken')); } });
방법 2:
게시 데이터를 처리하는 뷰 앞에 @csrf_exempt 데코레이터를 추가합니다
예를 들어
@csrf_exempt def profile_delte(request): del_file=request.POST.get("delete_file",'')
위 내용은 다음과 같습니다. 여러분을 모아봤습니다. 앞으로 모든 분들께 도움이 되길 바랍니다.
관련글 :
라이브러리(프레임워크) 없이 직접 Ajax 작성하는 방법에 대한 간략한 소개
MVC에서 Ajax와 HTML5 기반의 파일 업로드 기능 구현
jquery와 php를 결합하여 AJAX long 구현 투표
위 내용은 django가 ajax 게시 데이터를 사용할 때 403 오류를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!