django使用ajax post數(shù)據(jù)出現(xiàn)403錯誤如何解決
本文通過兩種方法給大家介紹在django中,使用jquery ajax post數(shù)據(jù),會出現(xiàn)403的錯誤,具體內(nèi)容請看下文。
方法一:
如果用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'));
}
});
方法二:
在處理post數(shù)據(jù)的view前加@csrf_exempt裝飾符
例如
@csrf_exempt
def profile_delte(request):
del_file=request.POST.get("delete_file",'')
以上通過兩種方法跟大家介紹了django使用ajax post數(shù)據(jù)出現(xiàn)403錯誤,希望對大家有所幫助。
相關(guān)文章
基于HTML5 Ajax文件上傳進度條如何實現(xiàn)(jquery版本)
本文給大家介紹基于html5 ajax文件上傳進度條是如何實現(xiàn)的,涉及到html5新增加的formdata對象的使用,對html5文件上傳進度條感興趣的朋友一起學習吧2015-11-11
ajax請求后臺得到j(luò)son數(shù)據(jù)后動態(tài)生成樹形下拉框的方法
今天小編就為大家分享一篇ajax請求后臺得到j(luò)son數(shù)據(jù)后動態(tài)生成樹形下拉框的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
ASP.NET與Ajax的實現(xiàn)方式小總結(jié)
Ajax 應(yīng)該不是一項技術(shù),是一種思想而已,跟 ASP.NET 以及其它 Web 開發(fā)語言沒有什么太大關(guān)系,這里只是談?wù)?ASP.NET 中目前使用的 Ajax 技術(shù)以及其它一些實現(xiàn) Ajax 的優(yōu)秀框架。感興趣的朋友跟著小編一起學習asp.net與ajax的實現(xiàn)方式2015-09-09
使用$.get()根據(jù)選項的不同從數(shù)據(jù)庫異步請求數(shù)據(jù)
本例實現(xiàn)的是這樣的一個效果:當從select下拉框選擇編程語言時時,根據(jù)選項的不同,異步請求不同的函數(shù)API描述,需要的朋友可以參考下2014-04-04

