2016-05-10 5 views
0

Ich versuche OGRE Online-Konverter zu verwenden, um Shapefiles in ein anderes Format zu konvertieren, verweisend https://ogre.adc4gis.com/ Ich mache einen AJAX-Aufruf, um die Datei zu senden und die Antwort zu erhalten, aber die Antwort lautet: "Kann Eigenschaft nicht lesen" Pfad 'von undefiniert "Ajax Aufruf für OGRE Konverter

Unten ist das Code-Snippet für Ajax-Aufruf, wobei sFile die Datei aus dem Steuerelement zum Hochladen von Dateien ist. Ich habe versucht, Datei in mehreren Methoden für 'Daten' in Ajax-Aufruf (Erstellen von FormData-Objekt, Erstellen von Objekt usw.), aber ich bekomme den gleichen Fehler.

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); 
        } 
      }); 
    } 

Und wenn ich das gleiche mit Postman versucht, das funktioniert (die konvertierte Datei als Antwort bekommen) enter image description here)

Antwort

1

Sie sind nicht wirklich Ihre formdata auf die AJAX-Request angehängt, aber ein anderes Objekt:

data : obj 

Dann, was Sie auch tun müssen, ist dies zu definieren Uncaught TypeError: Illegal invocation zu verhindern:

processData: false, 
contentType: false, 

Die korrigierte Funktion:

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); 
    } 
    }); 
} 

Demo:

https://plnkr.co/edit/x5YRc3ALEoiYWwThBqNa