【发布时间】:2017-11-08 16:05:42
【问题描述】:
我不知道python。
我只是请求使用 jQuery 和 AJAX 的 Python REST API。
到目前为止,这是我的代码:
<!DOCTYPE html>
<html>
<head>
<title>Announcements</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<div id="announcements">
</div>
<script>
$(document).ready(function(){
$.ajax({
dataType: "json",
method: "GET",
url: "/mhtsessions/annoucements/",
data: {
csrfmiddlewaretoken: getCookie('csrftoken')
},
success: function(data){
$("#announcements").html(data);
}
});
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;
}
});
</script>
</body>
</html>
我还需要传递 CSRF Token 才能访问 API。
CSRF Token 由 Django Rest Framework 生成。
这个Question看过了,不是我的情况,还需要通过CSRF Token。
编辑:
另外,我在 POSTMAN 中的JSON 中收到了回复,我只需要 JS 或 AJAX 代码即可将其展示给用户。
【问题讨论】:
-
API 开发人员需要为请求禁用 CSRF 并实施正确的身份验证。 stackoverflow.com/questions/11374382/…
-
GET 请求不需要 CSRF 令牌。
-
我尝试不使用
CSRF和使用CSRF两种方式我都得到了上面代码的空白页面。
标签: jquery python ajax django rest