【发布时间】:2013-02-01 20:47:19
【问题描述】:
我正在尝试让 Django 在我的网页上生成有效的 Ajax 交互。
我在此处遵循了 django-dajaxice 的说明:http://django-dajaxice.readthedocs.org/en/latest/quickstart.html 和此处:http://django-dajaxice.readthedocs.org/en/latest/installation.html
但是,当我尝试在 Chrome 中运行该 Ajax 代码时,我得到的只是弹出一个对话框,其中包含“未定义”一词
顺便说一句,这就是我从 HTML 页面调用 Ajax 的方式:
<script type="text/javascript">
function my_js_callback(data){
alert(data.message);
}
</script>
AJAX!!<br/>
<br/>
<input id="myID" type="text" name="myID" maxlength="255" onclick="Dajaxice.example.sayhello(my_js_callback);"/>
<br/>
那么为什么会出现这个未定义的对话框? 我打开了 Chrome 的调试器,在这种情况下它没有显示任何错误。
顺便说一句,当上面的安装说明告诉我修改我的 urls.py 时,这是模棱两可的。我有两个 urls.py;一个用于我的站点,一个用于我的应用程序。我把这些陈述放在网站的 url.py 中。但我不确定这是否正确。有人可以确认或否认吗?
【问题讨论】:
-
你从 django 端返回什么?
-
Burhan,我如何检查从 Django 端返回的内容? Django 中应该调用的函数如下所示:@dajaxice_register def sayhello(request): return simplejson.dumps({'message':'Hello World'})
-
你是如何使用 runserver 运行代码的?你有 debug=True 吗?
-
在我的 settings.py 中,DEBUG = True。这就是我运行 Django 服务器的方式: python ~myUser/project_base/web_container/manage.py runserver 0.0.0.0:80 仅供参考,当上面的 onclick 方法触发时,我看到 Django 网络服务器出现以下行:“POST /dajaxice /myApp.sayhello/HTTP/1.1"