问题是下一个:在我的应用程序中,用户可以创建目标,并且所有功能都可以正常运行。现在我正在使用ajax轮询和json进行通知功能。当用户是新用户时,它工作正常,如果用户没有创建目标或修改任何内容,则通知会出现在应用的每个模板中(我想要)。但是,如果用户创建目标,或修改应用程序中的其他内容(应用程序的其他功能正常),则通知效果不佳,因为我收到错误网址未找到。更奇怪的是,当通知无效时,控制台会显示:
未找到:/ list_goal / notify
或者如果我在应用程序的某个网址中,那么错误就是
未找到:/ some-url-of-app / notify
但是当它工作时,控制台显示:" GET / notify / HTTP / 1.1" 200 125
那我该怎么办?
代码:
目标/ urls.py
urlpatterns = [
url(r'^list_goals/$', views.list_goals, name='list_goals'),
url(r'^list_goals/create/$', views.create, name='create'),
url(r'^notify/$', views.notify, name='notify'),
... others urls ...
]
目标/ views.py
@login_required
def notify(request):
user= User.objects.get(user=request.user.id)
if request.method == 'GET':
if request.is_ajax():
name = user.name
data = {"name":name }
return JsonResponse(data)
return render(request, 'list_goals.html')
... others views
templates / base.html
... html code ...
<script>
(function poll() {
setTimeout(function() {
$.ajax({
url: '/notify/',
type: "GET",
success: function(json) {
console.log(json);
alert('Notify: your name is: '+ json['name'])
},
dataType: "json",
complete: poll,
timeout: 20000
})
}, 5000); // 1000 = 1 SEGUNDO PARA DEBUGGING LO DEJO EN 1 MINUTO.. EN REALIDAD LO CORRECTO SERIA ENTRE 20 Y 40 MINUTOS
})();
</script>
...更多HTML代码......