Jquery Ajax调用不返回数据Django
我想编写一个简单的Jquery Ajax调用不返回数据Django,jquery,python,ajax,django,Jquery,Python,Ajax,Django,我想编写一个简单的ajax方法,以便在文档准备就绪时启动。我有以下JS: $(document).ready(function() { $.ajax({ type:'GET', url: '/get_alert', sucess: function(data){ data = JSON.parse(data); alert("Hi"); console.log(
ajax
方法,以便在文档准备就绪时启动。我有以下JS
:
$(document).ready(function()
{
$.ajax({
type:'GET',
url: '/get_alert',
sucess: function(data){
data = JSON.parse(data);
alert("Hi");
console.log(data);
$('#notification_symbol').css('display','inline');
},
error: function(){
console.log("Hello");
}
});
}
我可以确认url正在工作,并且正在ready
上进行呼叫。但是,它不会返回任何数据。这是我在views.py中的函数:
def get_alert(request):
alert = False
events = EventInvite.objects.filter(Invitee_id=request.user.id, Status= InvitationStatus.objects.filter(Status='Pending')[0]).order_by('-date')
for event in events:
if event.seen:
alert = True
dict = {
'alert':alert,
}
print(dict) # Tells me the call is being made on ready...
return JsonResponse(dict)
有什么想法吗?您有CSRF令牌代码吗?这通常是我遇到ajax-y问题时的问题。我不确定您使用的是什么django(我大约是~1.8),但下面的代码通常会为我清除这个问题。只需在html页面中的脚本标记中添加此内容。当您进行ajax调用时,这会自动发布CSRF内容
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;
}
var csrftoken = getCookie('csrftoken');
function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});
函数getCookie(名称){
var-cookieValue=null;
if(document.cookie&&document.cookie!=''){
var cookies=document.cookie.split(“;”);
对于(变量i=0;i
包含解释这些代码片段的django文档参考页。您有CSRF令牌代码吗?这通常是我遇到ajax-y问题时的问题。我不确定您使用的是什么django(我大约是~1.8),但下面的代码通常会为我清除这个问题。只需在html页面中的脚本标记中添加此内容。当您进行ajax调用时,这会自动发布CSRF内容
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;
}
var csrftoken = getCookie('csrftoken');
function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});
函数getCookie(名称){
var-cookieValue=null;
if(document.cookie&&document.cookie!=''){
var cookies=document.cookie.split(“;”);
对于(变量i=0;i
包含解释这些代码片段的django文档参考页
注意到success
拼写错误
注意到
success
拼错了。谢谢你的提示,但是我拼错了success
:(哦!当你说你的函数被正确调用时,我应该意识到情况并非如此。也许今天早上我们都缺少咖啡;)谢谢你的提示,但我拼错了success
:(哦!当你说你的函数被正确调用时,我应该意识到情况并非如此。也许今天早上我们都缺少咖啡;)