2017-07-20 11 views
0

Schönen Tag Ich beabsichtige zu implementieren Voicebase irgendwie habe ich bereits die Daten des Audios, dass ich den Test hochgeladen, der nächste Schritt ist, Audios über ein Formular hochladen und der Prozess wird durch AJAX durchgeführt.API VoiceBase und Audio hochladen

<form id="formFile"> 
    <div class="form-group"> 
    <label for="vb-file">Agregar Archivo:</label> 
    <input type="file" class="form-control" id="media" name="media"> 
    </div> 
    <button type="submit" class="btn btn-default">Submit</button> 
</form> 

Und der Ajax-Code ist als

folgt
$('#formFile').submit(function(e) { 

    var access_token = 'eyJ0eXAiOiJKV1QiLCJh'; 

    var formData = new FormData(document.getElementById('formFile')); 
    formData.append('dato', 'valor'); 

    $.ajax({ 
     url: 'https://apis.voicebase.com/v2-beta/media', 
     type: 'POST', 
     data: formData, 
     cache: false, 
     contentType: false, 
     processData: false, 
     beforeSend: function(xhr) { 
      xhr.setRequestHeader('Authorization', 'Bearer ' + access_token); 
     }, 
     success: function(result) { 
      console.log(result); 
     }, 
    }); 


    e.preventDefault(); 
}); 

Ich brauche den folgenden Code zu ersetzen und als Ajax zu setzen, vor allem der Teil der Sprache, da die Datei ohne Probleme steigt bereits wie erwähnt .

+0

Sie benötigen einen Absenden-Button für Ihr Formular – user10089632

+0

Es tut mir leid, ich habe hinzugefügt, es war ein Fehler nicht zu schreiben, aber das ist nicht das Hauptproblem. –

+0

Wenn Sie Chrome verwenden, aktivieren Sie Ihre "Developer Tools" (Mozilla Firefox hat etwas ähnliches). Sie können dann sehen, was Sie senden und empfangen in den HTTP-Anfragen – cerebrotecnologico

Antwort

0

Das Problem hier ist, dass Sie die Konfigurations-JSON-Datei in Ihrer Anfrage fehlt. In der cURL-Anfrage gibt es ein Element, das beginnt: 'configuration = {"configuration ..."' Diese Konfiguration ist für v2-beta notwendig, um zu verstehen, wie die hochgeladene Mediendatei zu verarbeiten ist. Sie können eine config.json-Datei erstellen und diese zusätzlich zur Mediendatei in eine Überschrift hochladen, indem Sie ein anderes Element in formData namens "configuration" erstellen und die Datei configuration.json anhängen.

Sie wollen so etwas wie:

var formData = new FormData(); 
formData.append("media", "my_media_file.mp3"); 
formData.append("configuration", "configuration.json"); 

var settings = { 
    "url": "https://apis.voicebase.com/v2-beta/media", 
    "method": "POST", 
    "headers": { 
    "accept": "application/json", 
    "authorization": "Bearer access_token" 
    }, 
    "processData": false, 
    "contentType": false, 
    "mimeType": "multipart/form-data", 
    "data": formData 
} 

$.ajax(settings).done(function (response) { 
    console.log(response); 
}); 

Und sollte Ihre configuration.json Datei enthalten:

configuration={ 
    "configuration": { 
    "language": "es-LA", 
    "keywords": { 
     "semantic": false 
    }, 
    "topics": { 
     "semantic": false 
    } 
    } 
} 

By the way: Vielen Dank für Ihre vollständige Zugriffstoken Posting! Zugriffstoken sollten als das Äquivalent von Benutzername und Kennwort zusammen betrachtet werden - und sollten nicht geteilt werden.

+0

Danke Daniel O'Rorke, ich werde es versuchen. –