私はjQueryのnoobです。助けてください!非常に感謝しています!ジャンゴのAJAXはかなり混乱しています。
私urls.py: url('^xhr_test/$','posts.views.xhr_test'),
私のviews.py:
def xhr_test(request):
if request.is_ajax():
message = "Hello AJAX"
else:
message = "Hello"
return HttpResponse(message)
ので、非常にシンプル。この設定は、私のHTMLページの2つのバージョンのいずれかで動作します。それだ
<script type="text/javascript">
$(document).ready(function() {
$.get("xhr_test", function(data) {
alert(data);
});
});
</script>
:
HTMLバージョン1は成功です。 AJAXリクエストは、ページの読み込みが完了するたびに行われます。非常に動作するように、私は「こんにちはAJAX」
今すぐHTMLバージョン2が動作しないと言う素敵な警告ボックスを取得:私がクリックしたときに
$(document).ready(function() {
$("a").click(function() {
alert("hi");
$.get("xhr_test", function(data) {
alert(data);
});
});
});
<a href="">Click here</a>
だから、私は警告を取得する「こちらをクリック」をその中に「こんにちは」、それから何もない。私はFirebugで何も見ないので、何も送ったり受け取ったりしていないようです。また、 "xhr_test"から "myApp/xhr_test"と "/ myApp/xhr_test"へのリクエストURLを無駄に変更しようとしました。
私は間違っていますか?
ありがとうございました!あなたのコードにevent.preventDefault();
を追加
THAT WORKED!どうもありがとうございます!あなたはそれを説明できますか?私はそれが元のことをやって、それは元hrefのURLに行くことをやってから要素を防ぐことですか? – rabbid
@Rabbid、まさにこれが起こっているのです。あなたが使用する別のオプションは、click関数がfalseを返すことです。 –
FirefoxでpreventDefault()が動作しないことがわかりました。結局のところ、標準の解決策は、 'return false;'を使うことなのです。 – rabbid