[英]Django Ajax - $.get method success function executed without ANY server-side view called
删除了前面的问题,以澄清它。
我有一个由Django驱动的网站和一个带有动态填充表格的模板。
模板:
<table id = 'my_table'>
<thead>
......
</thead>
<tbody>
</tbody>
</table>
Java脚本
$(function ()
{
refresh_vendors_list_table();
});
function refresh_vednors_list_table()
{
$.get("/ajax_refresh_vendors_list_table/", function(response)
{
$('#my_table').find('tbody').html(response);
});
}
视图:
def ajax_refresh_vendors_list_table(request):
template = 'vendors/vendors_list_paginator.html'
vendors_qs = vendors_qs.filter(...)
context = {'vendors_qs':vendors_qs}
return render_to_response(template,
context,
context_instance=RequestContext(request))
表格模板(vendors_list_paginator.html)
{% load el_pagination_tags %}
{% paginate vendors_qs %}
{% for vendor in vendors_qs %}
<tr>
......
</tr>
{% endfor %}
{% show_more_table %}
当按下表中的每一行时,我将被重定向到相应供应商的配置文件。 编辑完配置文件后,我按返回按钮,然后再次返回到表格页面。 在这个阶段,我开始调试$.get("/ajax_refresh_vendors_list_table/", data, function(response)
我还在template = 'vendors/vendors_list_paginator.html'
处放置了一个断点(我们称之为断点A )
在$.get
函数中观察到一个非常奇怪的行为:未调用相应的Django视图(我看不到我的应用程序在断点A处停止),但是仍在$('#my_table').find('tbody').html(response);
直接执行,好像$ .get函数应该成功执行!
换句话说,$ .get函数在没有服务器端任何参与的情况下执行 (我强调“ any”一词。起初我以为可能是我弄乱了URLConf文件,并调用了其他视图。要进行检查,我清除了Django IDE控制台,然后再按浏览器后退按钮,然后按一下后,在Django IDE控制台中什么也没有看到,这意味着$ .get请求成功执行而没有任何视图调用!!!)这与分页有关吗? 我完全迷路了。 请帮助 !
更新
根据Sardorbek的回答,在ajax_refresh_vendors_list_table
的定义之前,我包括以下装饰器
@require_http_methods(["GET"])
@never_cache
def ajax_refresh_vendors_list_table(request):
...
嗯...看来您的浏览器正在缓存此请求。 尝试使用never_cache
包装此网址
never_cache(url(...))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.