2016-08-10 4 views
0

Ich benutze den folgenden einfachen AJAX-Aufruf.Django/Ajax Erhalte "Daten", die html von der Auslöseseite anstelle der Zielansicht zurückgeben

$.ajax({ 
    url: $('#currentNodes').attr('target'), 
    type: 'get', 
    dataType: "html", 
    success: function(data) { 
     console.log(data); 
    }, 
    failure: function(data) { 
     alert('error'); 
    } 
}); 

Es soll das Ziel aus dem folgende Elemente greifen:

<p><a href="{% url "current_nodes" view.slug %}" id="currentNodes">Test</a></p> 

Wenn ich auf dem obigen Elemente klicken, zeigt mein Browser die HTML ich in meinem views.py einrichten:

def current_nodes(request, slug): 
    html = "<html><body>Smoke Test for {}</body></html>".format(slug) 
    return HttpResponse(html) 

in der uRL definiert in meinem urls.py

url(r'^(?P<slug>[a-zA-Z0-9-]+)/current_nodes/$', current_nodes, name="current_nodes"), 

Aber nach console.log empfängt der Ajax-Aufruf von diesem Link die Antwort, die von der Ansicht kommt, die die aktuelle Seite liefert, nicht die, nach der ich im Ziel frage. Sicher genug, wenn ich versuche, etwas damit zu tun, zeigt es den vollen HTML der Schablone an, die ich bin, anstatt den HTML, den ich versuche zu verarbeiten, einzustecken.

Was fehlt mir?

Antwort

1

ist ein a Element. Es hat kein target Attribut; Es hat eine href.

+0

Das war es, danke, mein Herr –

1

Das Attribut target ist nicht definiert. versuchen Sie dies:

$.ajax({ 
    url: $('#currentNodes').attr('href'), 
    type: 'get', 
    dataType: "html", 
    success: function(data) { 
     console.log(data); 
    }, 
    failure: function(data) { 
     alert('error'); 
    } 
}); 
Verwandte Themen