Ajax调用OGRE转换器

Ajax call for OGRE converter

本文关键字:转换器 OGRE 调用 Ajax      更新时间:2023-09-26

我正在尝试使用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] :https://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