0

正如标题所说,我正在尝试发布数据但得到响应“状态”: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。但我猜我尝试发布的数据不是问题,因为当我一切正常时在我的本地服务器上使用它。

4

0 回答 0