Ajax调用OGRE转换器

时间:2016-05-10 16:02:48

标签: javascript ajax shapefile

我正在尝试使用OGRE在线转换器将shapefile转换为不同的格式,引用https://ogre.adc4gis.com/ 我正在进行AJAX调用以发送文件并获得响应,但响应显示"无法读取属性'路径'未定义"

以下是ajax调用的代码片段,其中sFile是文件上传控件中的文件。我尝试在几种方法中附加文件以获取数据'在ajax调用中(创建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时,这有效(将转换后的文件作为回复)enter image description here

1 个答案:

答案 0 :(得分:1)

您实际上并未将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