【发布时间】:2015-02-20 13:25:44
【问题描述】:
我正在使用this 和this 在我的rest 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)
【问题讨论】:
标签: javascript django django-rest-framework django-csrf