2013-02-19 4 views
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 

Im effectivement fait une méthode de post en envoyant une donnée de forme. mais sa prise a une demande get puisque j'ai donné le type a GET dans le script ajax. Im faire une vérification dans les points de vue. si request.method == "POST", mais cette méthode reste GETComment changer le type dans l'ajax

+0

Quel est le problème? Peut-être changer 'type: 'GET',' à 'type: 'POST','? – okm

Répondre

0

Modifier le type de poste ...

var a="{{parameter}}"; 

    $.ajax({ 
    type :'POST', 

    url : geturl(a), 

    dataType : 'json', 

Si vous na pas désactivé le middleware CSRF dans django, il causera un problème. pour le corriger, ajouter immédiatement ce script après la balise <script> et avant $(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')); 
     } 
    } 
}); 
+0

Je veux avoir un GET ainsi que la demande POST. GET de charger sumthin par défaut, puis POST est quand je veux récupérer les données basées sur les données de wat je envoie à travers le formulaire – prithu

+0

Vous aurez besoin de séparer les appels – YardenST

Questions connexes