为什么我的Django request.method与POST不匹配


$.ajax({
    type :'GET',
    url : geturl(a),
    // type: $(this).attr('method'),
    dataType : 'json',

views.py:

  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和POST请求吗。im使用表单,并且只有当点击提交按钮时,im才试图显示基于提交数据的信息。如果请求。POST.get('monysubmit'(不起作用。

p>它非常简单。你必须把事件抽象出来。
function event_page_load() {
   function ajax_request('GET')
}
function click_submit_button() {
   function ajax_request('POST')
}
function ajax_request(type) {
 $.ajax({
    type : type,
    ......
    ......
 })
}

您也可以考虑以下通用指南。GET和POST应根据对服务器的请求类型使用

 - If you are reading the existing data(without modification) from the server, use GET
 - if you are writing/modifying any data in the server, use POST

在jQuery中,您可以使用这些简单的方法。

对于GET请求

$.get(  
    url,  
    {param1: "value1", param2: "value2"},  
    function(responseText){  
        // todo ;  
    },  
    "html"  
);  

对于POST请求

$.post(  
    url,  
    {param1: "value1", param2: "value2"},  
    function(responseText){  
        // todo ;  
    },  
    "html"  
);  

请确保已禁用浏览器缓存。

$.ajaxSetup ({  
        cache: false  
    });

在django端,您可以使用request.is_ajax()方法来验证ajax调用,并可以基于request.method属性进行筛选。

您可以在Djano中引用AJAX的所有可能用法https://github.com/sivaa/django-jquery-ajax-exmaples

相关内容

最新更新