尝试将数据从本地文件发布到 api 时出现 422 错误

问题描述

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)