正如标题所说,我正在尝试发布数据但得到响应“状态”:422,“错误”:“无法处理的实体”。我的代码如下所示:
var data = {};
var confirmData = {};
confirmData['api_token'] = apikey;
confirmData['absence'] = {};
data['api_token'] = apikey;
data['absence'] = {};
data['absence']['absence_type_external_id'] = csv['absencetype'][i];
if(csv['userid'][i] !== undefined){
data['absence']['user_id'] = csv['userid'][i];
} else {
data['absence']['user_external_id'] = csv["externaluser"][i];
}
data['absence']['starts_at'] = getDate(csv["startdate"][i], "10");
data['absence']['ends_at'] = getDate(csv["enddate"][i], "18");
data['absence']['full_day'] = csv["additionalDate"][i] == "" ? true : false;
$.ajax({
url: "https://app.papershift.com/public_api/v1/absences",
type: 'POST',
dataType: 'application/json',
headers: {
"Accept" : "application/json",
"Content-Type": "application/json"
},
data: JSON.stringify(data),
complete: function (rsp) {
console.log(rsp.responseText);
如果我在我的本地 xampp 服务器上尝试相同的代码,一切正常,但出于安全原因,我必须在一个简单的 html 文件上本地运行它。如果我这样做,我会得到描述的错误。我认为这可能与我的浏览器的跨源策略有关,所以我用“--disable-web-security”启动了 chrome,因为这不起作用,我尝试了不同的浏览器,甚至是禁用的 chrome 插件整个跨起源的事情,但没有真正奏效。我什至不确定这是否是问题,因为我没有得到任何具体错误,只有 422。但我猜我尝试发布的数据不是问题,因为当我一切正常时在我的本地服务器上使用它。