【发布时间】:2015-08-17 05:03:41
【问题描述】:
我正在学习和使用没有 jQuery Lib 的 Ajax。我创建了一个简单的视图,它在模板上呈现一个随机数。我添加了一个按钮并调用了 ajax 函数。但是,单击按钮不会更改屏幕上的值。我检查了 DOM (firebug),它显示 someText.responseText 正在产生整个 html 而不仅仅是值,但是它在该 HTML 中具有新值。我分享这个是为了提供更多关于我到目前为止发现的信息。我对此很陌生,并且对前进行了很多实验;我检查了“request.is_ajax():”,但不知何故,视图在请求中找不到 ajax。我已经在命令行上打印了请求,但 GET querydict 是空的。
显然我没有以正确的方式为 Django 做某事。请协助。
我有意见;
def home(request):
rand_num = random.randint(1,100)
return render(request, 'home.html', {'rand_num':rand_num})
还有html和脚本;
<html>
<head>
<script type='text/javascript'>
var someText;
function helloWorld(){
someText = new XMLHttpRequest();
someText.onreadystatechange = callBack;
someText.open("GET", "{% url 'home' %}", true);
someText.send();
};
// When information comes back from the server.
function callBack(){
if(someText.readyState==4 && someText.status==200){
document.getElementById('result').innerHtml = someText.responseText;
}
};
</script>
</head>
<body>
<div id="result">{{rand_num}}</div>
<input type='button' value='Abraca dabra!' onclick="helloWorld()"/>
</body>
</html>
这是该视图的网址;
url(r'^$', 'socialauth.views.home', name='home'),
我是从在线教程中学习的。
【问题讨论】:
标签: javascript ajax django django-templates django-views