我正在使用以下简单的AJAX调用。
$.ajax({
url: $('#currentNodes').attr('target'),
type: 'get',
dataType: "html",
success: function(data) {
console.log(data);
},
failure: function(data) {
alert('error');
}
});
应该从以下元素中获取目标:
<p><a href="{% url "current_nodes" view.slug %}" id="currentNodes">Test</a></p>
当我点击上述元素时,我的浏览器会显示我在 views.py 中设置的HTML:
def current_nodes(request, slug):
html = "<html><body>Smoke Test for {}</body></html>".format(slug)
return HttpResponse(html)
在我的 urls.py
中定义的网址url(r'^(?P<slug>[a-zA-Z0-9-]+)/current_nodes/$', current_nodes, name="current_nodes"),
但根据console.log
,来自此链接的Ajax调用会收到来自为当前页面提供服务的视图的响应,而不是我在目标中请求的响应。果然,如果我尝试用它做任何事情,它会显示我所在的模板的完整html,而不是插入我正在尝试处理的html。
我错过了什么?
答案 0 :(得分:1)
#currentNodes
是a
元素。它没有target
属性;它有一个href
。
url: $('#currentNodes').attr('href'),
答案 1 :(得分:1)
未定义属性target
。试试这个:
$.ajax({
url: $('#currentNodes').attr('href'),
type: 'get',
dataType: "html",
success: function(data) {
console.log(data);
},
failure: function(data) {
alert('error');
}
});