0
template.html
<script >
$(document).ready(function() {          


var a="{{parameter}}";

    $.ajax({
    type :'GET',

    url : geturl(a),

    dataType : 'json',


views.py
if param=="daywise":

    print request.method
    if request.method=="POST":


        if request.POST.get('monyrsubmit'):
            monthform=MonthForm(request.POST)
            if monthform.is_valid():
                selected_month=monthform.cleaned_data["Month"]
                selected_year=monthform.cleaned_data["Year"]
                print selected_month
                print selected_year

私は実際にフォームデータを送信してポストメソッドを実行しています。しかし、私はajaxスクリプトでタイプにGETを指定したため、取得リクエストがあります。ビューでチェックを行っています。request.method=="POST" の場合、このメソッドは GET のままです

4

1 に答える 1

0

タイプを POST に変更します...

var a="{{parameter}}";

    $.ajax({
    type :'POST',

    url : geturl(a),

    dataType : 'json',

django で CSRF ミドルウェアを無効にしなかった場合、問題が発生します。<script>これを修正するには、タグの直後と の前に次のスクリプトを追加します$(document).read...

$.ajaxSetup({ 
        beforeSend: function(xhr, settings) {
            function getCookie(name) {
                var cookieValue = null;
                if (document.cookie && document.cookie != '') {
                    var cookies = document.cookie.split(';');
                    for (var i = 0; i < cookies.length; i++) {
                        var cookie = jQuery.trim(cookies[i]);
                     // Does this cookie string begin with the name we want?
                     if (cookie.substring(0, name.length + 1) == (name + '=')) {
                        cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                        break;
                     }
                 }
             }
             return cookieValue;
         }
         if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
             // Only send the token to relative URLs i.e. locally.
             xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
         }
     } 
 });
于 2013-02-19T08:23:00.497 に答える