【发布时间】:2016-06-07 19:01:42
【问题描述】:
为什么会出现这个错误,我认为我有正确的 ajax 函数,我设置了正确的网址...请,任何帮助将不胜感激。
<div id='notificationsLoader'>
</div>
<script>
$(document).ready(function(){
$(".notification-toggle").click(function(e){
e.preventDefault();
$.ajax({
type:"POST",
url:"{% url 'get_notifications_ajax' %}",
data: {
csrfmiddlewaretoken: "{{csrf_token}}",
},
success: function(data){
$("#notificationsLoader").html('<h3>notifications</h3>');
$(data.notifications).each(function(){
$("notificationsLoader").append(this + "<br/>")
})
console.log(data.notifications);
},
error: function(rs, e){
console.log(rs);
console.log(e);
}
})
})
})
</script>
在 views.py
中@login_required
def get_notifications_ajax(request):
notification = Notification.objects.get(id=id)
notes =[]
for note in notifications:
notes.append(str(note))
data={
"notifications":notes
}
json_data = json.dumps(data)
return HttpResponse(json_data, content_type='application/json')
在 urls.py
中urlpatterns += patterns('notifications.views',
url(r'^notifications/$', 'all', name='notifications_all'),
url(r'^notifications/ajax/$', 'get_notifications_ajax', name='get_notifications_ajax'),
url(r'^notifications/(?P<id>\d+)/$', 'read', name='notifications_read'),
)
我尝试在 settings.py 中更改允许主机,但它不起作用。我几乎可以肯定代码是正确的,因为我正在学习教程,并且使用这个代码指导员可以毫无问题地做到这一点。谢谢,
完全错误
发布http://127.0.0.1:8000/notifications/ajax/ 403(禁止)> 错误)发送@jquery.min.js:4m.extend.ajax@jquery.min.js:4(匿名 函数)@(索引):359m.event.dispatch@jquery.min.js:3r.handle@ jquery.min.js:3
【问题讨论】:
-
你真的需要POST方法吗,请参考这个stackoverflow.com/a/35340286/5633503,希望这会有所帮助
-
@Kjjassy 我想是的,不是吗?我正在学习一个教程,并且讲师也放了一个 github.com/codingforentrepreneurs/srvup-membership/blob/… 没有 POST 无论如何都会出现相同的错误。
-
@mika 你给我发了一个错误的链接:)
-
我看过了,看来你按照这个教程的步骤是对的,尝试调试和打印错误,然后下载github.com/codingforentrepreneurs/srvup-membership/tree/…这个并交叉验证你的代码,这就是我能做的。