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 + '=')) { 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 = '//' + 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 + '/') || (url == sr_origin || url.slice(0, sr_origin.length + 1) == 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 + jtemplate에 대한 자세한 설명
요청 프로세스 중 진행 상황을 보여주는 Ajax의 간단한 구현
위 내용은 django에서 jquery ajax 게시 데이터를 사용할 때 403 오류에 대한 해결 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!