Ajax 呼吁 OGRE 转换器

Ajax call for OGRE converter

我正在尝试使用 OGRE 在线转换器将形状文件转换为不同的格式,参考 https://ogre.adc4gis.com/ 我正在调用 AJAX 来发送文件并获得响应,但响应显示“无法读取未定义的 属性 'path'”

下面是 ajax 调用的代码片段,其中 s File 是来自文件上传控件的文件。我尝试在 ajax 调用中使用 'data' 的几种方法附加文件(创建 FormData 对象、创建对象等),但我遇到了同样的错误。

    function shapeFileProcessing(sFile){
           
         var formdata = new FormData();
         formdata.append("upload", sFile);
                   
         var obj = {};
         obj.upload = sFile;
                     
           $.ajax({
                  url : 'http://ogre.adc4gis.com/convert',
                  data : obj,
                  type : "POST",
                  success : function(msg) {
                    console.log("Success: "+msg);
                  }
          });
    }

当我对 Postman 进行同样的尝试时,这有效(获取转换后的文件作为响应)[![在此处输入图像描述][1]][1]) [1]: http://i.stack.imgur.com/EJO8T.jpg

您实际上并不是将 formdata 附加到 AJAX 请求,而是另一个对象:

data : obj

然后你还需要做的就是定义它来防止Uncaught TypeError: Illegal invocation:

processData: false,
contentType: false,

更正后的函数:

function shapeFileProcessing(sFile){

  var formdata = new FormData();
  formdata.append("upload", sFile);

  $.ajax({
    url: 'https://ogre.adc4gis.com/convert',
    data: formdata,
    type: "POST",
    processData: false,
    contentType: false,
    success: function(msg) {
      console.log("Success: "+msg);
    }
  });
}

演示:https://plnkr.co/edit/x5YRc3ALEoiYWwThBqNa