2017-07-31 22 views
0

我有一个简单的ajax表单,我需要向我的服务器发送响应。但每当我提出我得到这个错误:为什么Ajax无法访问服务器?

Forbidden (CSRF token missing or incorrect.): /designer/addOne/ 
[31/Jul/2017 12:49:12] "POST /designer/addOne/ HTTP/1.1" 403 2502 

我敢肯定一切都配置好,并且有与csrf_token没有错误。

HTML

<form id="addOneForm"> 
    {% csrf_token %} 
    <input id="addOne" type="button" value="Next"> 
</form> 

阿贾克斯(JS)

$(document).ready(function() { 
    $(document).on('click', '#addOne', function(e){ 
    $.ajax({ 
     type:'POST', 
     url:'/designer/addOne/', 
     processData: false, 
     contentType: false, 
     data:{ 
      csrfmiddlewaretoken:$('#addOneForm input[name=csrfmiddlewaretoken]').val(), 
     }, 
     success: function(response) { 
     } 
    }); 
    }); 
}); 

我在做什么错? (对于服务器我使用Django)

+0

使用jQuery阿贾克斯的误差函数来获取错误准确... \t \t \t'错误:函数(jqXHR,textStatus,EX){ \t \t \t \t的console.log(textStatus + “” +前+”, “+ jqXHR.responseText); \t \t \t}' – Jana

+0

@Jana要恢复,只是说csrf_token不正确或丢失。 – Lindow

回答

0

虽然我仍然没有从什么错误是造成知道我只是改变了阿贾克斯:

var form_data = new FormData($('#addOneForm')[0]); 
$.ajax({ 
    type:'POST', 
    url:'/designer/addOne/', 
    processData: false, 
    contentType: false, 
    data : form_data, 
    success: function(response) { 
    } 
}); 

这使得它的工作。