2016-08-10 6 views
0

次の単純なAJAX呼び出しを使用しています。Django/Ajaxターゲットビューの代わりに発射ページからhtmlを返す "データ"を取得

次の要素からターゲットをつかむことになっている
$.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を表示します。私urls.pyで定義されたURLに

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

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

しかし、console.logによれば、このリンクからのAjax呼び出しは、ターゲットで要求しているページではなく、現在のページを提供しているビューからの応答を受け取ります。確かに、私はそれを使って何かをしようとすると、私が処理しようとしているhtmlをプラグインするのではなく、テンプレートの完全なhtmlを表示します。

私には何が欠けていますか?

答えて

1

#currentNodesは、a要素です。それにはtarget属性はありません。それはhrefを持っています。

url: $('#currentNodes').attr('href'), 
+0

これは、ありがとうございます –

1

属性targetは定義されていません。これを試してください:

$.ajax({ 
    url: $('#currentNodes').attr('href'), 
    type: 'get', 
    dataType: "html", 
    success: function(data) { 
     console.log(data); 
    }, 
    failure: function(data) { 
     alert('error'); 
    } 
}); 
関連する問題