在django页面加载数据时jquery ajax出现问题
为什么下面的jquery代码在与django一起使用时不起作用,而如果像静态页面一样加载则可以工作?
可能在某个地方涉及 django 的 csrf 保护,但我找不到如何使其工作。
编辑、精简代码:
$(document).ready(function(){
$('.content').load('something.txt');
$.ajax({
method: "get",url: "http://something.com/pm/js/something.txt",
success: function(html)
{
$(".content").html(html);
}
});
});
这样做的目的应该是: 当这个 django 页面加载时,脚本应该调用另一个 django 视图并从中加载数据。 (此时为了方便起见,“something.txt”是静态文件)
...firebug 没有显示任何异常
why following jquery code doesn't work when used with django while it works if loaded like static page?
there's probably django's csrf protection involved somewhere, but i can't find how to make it work.
edited, stripped down code:
$(document).ready(function(){
$('.content').load('something.txt');
$.ajax({
method: "get",url: "http://something.com/pm/js/something.txt",
success: function(html)
{
$(".content").html(html);
}
});
});
the purpose of this should be:
when this django page loads, the script should call another django view(s) and load data from them.
(at this moment to make it easier 'something.txt' is static file)
...firebug doesn't show anything abnormal
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我将进行大胆的猜测:也许当您使用 Django 加载页面时,您没有正确设置静态文件服务,因此 jQuery 永远不会被加载,因此您的 Javascript 都不会被执行。
要检查 jQuery 是否已加载,请在该页面上打开 firebug,并查看
jQuery
变量是否为未定义
。如果这是问题所在,现在只需从 CDN 加载 jQuery 即可。
<脚本 src="http://code.jquery.com/jquery-1.5.1.js">
I'm going to take a wild guess: maybe when you load the page with Django you don't have static file serving setup properly, so jQuery never gets loaded, and as such none of your Javascript gets executed.
To check and see if jQuery is getting loaded open firebug on that page and see if the
jQuery
variable isundefined
.If that's the problem just load jQuery from a CDN for now.
<script src="http://code.jquery.com/jquery-1.5.1.js"></script>