Я использую это и это, чтобы опубликовать некоторые данные в моем API отдыха. Но я получаю плохой ответ на запрос (400).
Кусок моего кода
var dataTask = {};
var dataPeri = {};
var csrf;
var that = this;
var date = new Date();
var dateString;
dateString = date.toJSON().slice(0, 10);
dataPeri['date'] = dateString;
dataPeri['customer'] = customerId;
csrf = $('input[name="csrfmiddlewaretoken"]').val();
console.log('csrf:'+csrf);
console.log(dataPeri); //The objects seems fine with date at the right format and customerId a number
$.ajaxSetup({
beforeSend: function(xhr, settings){
if (!this.crossDomain){
xhr.setRequestHeader("X-CSRFToken", csrf);
}
}
});
$.ajax({
dataType:'json',
type: 'post',
url: '/crm/api/periodontogramms/',
data:JSON.stringify(dataPeri),
success: function (data, textStatus, jqXHR){
alert("New Periodontogramm saved successfully");
console.log("Periodontogramma "+ data);
that.periodontogramms.push(data);
},
error: function (jqXHR, textStatus, errorThrown){
alert(errorThrown);
}
});
Я не могу понять, что это за ошибка, потому что никакое другое сообщение не приходит с ошибкой. Я отправляю Json обратно (с JSON.stringify). Должен ли я отправить что-то еще? Может быть, проблема связана с dateString? В моем доступном для просмотра API для публикации чего-либо я использую дату в следующем формате: YYY-MM-DD
. Это то, что я получаю от date.toJSON.slice(0, 10)
. Если бы это была проблема csrf, разве я не должен был бы получать запрещенное сообщение (403)