0

私は完全に迷っています.djangoサイトの情報を含め、この質問に対する多くの回答とチュートリアルを読みましたが、これに対処する方法がわかりません.

私の問題は非常に単純です。ajax を使用して簡単な投稿リクエストを行い、情報を取得したいと考えています。django 側の view メソッドにも入りません。

ここにコードがあります

#urls.py
url(r'^spitback/$', 'spitback'),

#views.py
def spitback(request):
    logger.debug("\n\n\nspitback");
    logger.debug("request.method = {0}".format(request.method))
    return HttpResponse("helloooooo")

JavaScript:

function csrfSafeMethod(method) {
    return(/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}

$.ajaxSetup({
    crossDomain: false,
    beforeSend: function(xhr, settings) {
        var csrftoken = $.cookie('csrftoken');

        if (!csrfSafeMethod(settings.type)) {
            xhr.setRequestHeader("X-CSRFToken", csrftoken);
        }
    }
});


function testpost() { 
  $.ajax({ 
    type:"POST", 
    url:'/login', 
    data:{
        'key':'val', 
       'csrfmiddlewaretoken':"TB5gktJzHdowOtXR4u1BpjGABoKbJ2IQ"
    },        
    contentType:"application/json;charset=utf-8", 
    dataType:"json", 
    success: function(data) { alert('data = ' + data);}, 
    error: function(ts) { alert('ts = ' + ts)}
  }); 

  return false; 
}

    $( document ).ready( function() {
        console.log("document loaded for template login.django");
         $( "#somebutton" ).click( 
            testpost
        );
    });

この時点で投稿機能をテストしようとしていますが、試してみると、ログから「スピットバック」のビュー メソッドが呼び出されていないことがはっきりとわかります。

誰か私を助けてください。私は途方に暮れています。

4

1 に答える 1

1

それは次のようになります。

 $( "#somebutton" ).click( 
     testpost();
 );

また、urlあなたの ajax 呼び出しも間違っています。

于 2013-08-11T16:27:03.757 に答える