0

ここで見つけたajaxSendコードはどこに置くのですか?

https://docs.djangoproject.com/en/1.2/ref/contrib/csrf/#ajax

つまり、次のようなセクションを持つベースhtmファイルがあります。

<script>
    $(function() {
        $("#loginThing").click(function(){
            ... and then i define buttons to be pressed etc etc
    });
</script>

だから何?$ {function(){});の上にコードを配置しますか?呼び出します(ただし、スクリプトタグ内で)?関数呼び出し入れますか?私はそれを変更する必要がありますか-それが呼ばれる方法、おそらく-何らかの形や形で?

$(function())呼び出しの上に(ただしscriptタグに)貼り付けましたが、ajax呼び出しの動作が異なるわけではありません。実際、これが何かをしているのかどうかをテストする方法について、私には最も霧深い概念がありません。私はテストコードを使用していません(私は知っています、ひどいです。しかし、これは学習の進歩です。また、私はテストコードが好きではありません)。これを「手動で」テストする方法はありますか?たとえば、Firefoxだけを使用していますか?

4

1 に答える 1

1

ajaxSendコードはどこに置きますか

現在の関数定義の外にある必要があります。

<script>
    $(function() {
        $("#loginThing").click(function(){
            // ... and then i define buttons to be pressed etc etc
    });

    $(document).ajaxSend(function(event, xhr, settings) {
        // ... Rest of function goes here
    });
</script>

これを「手動で」テストする方法はありますか?たとえば、Firefoxだけを使用していますか?

私はそれを使用していないので、Firefoxでそれをテストする方法をあなたに教えることができません。ただし、Chromeにはこれに最適なインターフェースが組み込まれています。

Chromeでページを開き、Command-Option-Iを押します(Macの場合、Windowsも同様です)。[ネットワーク]タブに移動します。左端の列に、POSTリクエストのURLが表示されます。クリックして。探索する必要のあるすべての詳細、Cookie(csrftokenDjangoのcsrf cookieがページに存在することを確認してください)、要求ヘッダーと応答ヘッダーなどが表示されます。

私のajax呼び出しが異なった振る舞いをしているのとは違います。実際、これが何かをしているのかどうかをテストする方法について、私には最も霧深い概念がありません。

彼らはそうあるべきです、あなたはそれを「見る」ことができません。上記で説明したChromeツールを使用して、サーバーとの通信を表示します。「何かをしている」ことを確認するには:

  1. 追加したJavaScriptコードをDjangoサイトから削除します
  2. csrfで保護されたフォームにAJAXPOSTを実行します
  3. POSTが失敗することに注意してください
于 2012-06-12T14:57:08.020 に答える