【发布时间】:2019-01-06 21:02:47
【问题描述】:
这是我第一次使用 AJAX,我不明白为什么我需要在 JS Ajax 调用中指定 url 参数。
{% block javascript %}
<script>
$("#id_username").change(function () {
$.ajax({
url: '/some_new_url/',
data: {
'something': ...
},
success: function (data) {
if (data.is_taken) {
alert("Data is already in DB");
}
}
});
});
</script>
{% endblock %}
据我了解,AJAX 用于在服务器端执行某些操作而无需刷新页面。所以它不应该在向服务器发送数据时重定向到新的url,并保持在同一个 URL 上。然而 AJAX 调用需要url 参数。
我真的不喜欢这样,因为设置一个新的url 意味着我必须在我的app/urls.py 中添加另一个url 模式。
re_path(r'^create/$', views.Some_View.as_view(), name='create'),
因此,在我的 views.py
中创建另一个view
class Some_View(ListView):
model = SomeModel
fields = '__all__'
但是,我已经有一个CBV 在用户端生成表单字段并接受用户输入。我只想让我现有的CBV 使用 AJAX 调用将数据保存到数据库。
由于我不明白 url 的用途是什么,我不知道如何设置我的新 url 模式,以及CBV。我可以在这里得到一些解释吗?
++ 这只是一个额外的问题,但我的最终目标是生成多个表单字段和多个 Submit 按钮,它们使用 AJAX 将相应的表单输入数据发送到服务器。如果对如何调整 AJAX 代码有任何建议,我将不胜感激。
【问题讨论】:
-
Ajax 需要将数据发送到服务器。这需要一个 URL。它还能如何工作?
-
将数据发送到您拥有的相同 url。更新该方法以适用于 AJAX 请求。参考:django.http.HttpRequest.is_ajax
-
@SachinKukreja 你有任何示例代码 sn-p 的链接吗?包括AJAX函数、CBV和urls.py?
-
我想如果你在网上好好搜索一下,你会找到一个可行的例子。
标签: ajax django django-urls