2017-07-20 83 views
0

美好的一天 我打算实施Voicebase不知何故,我已经收到了我上传音频的数据,下一步是通过表单上传音频,并通过AJAX完成流程。API VoiceBase和上传音频

<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> 

而且AJAX代码如下

$('#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(); 
}); 

我需要更换下面的代码,并把它作为阿贾克斯,语言尤其是一部分,因为该文件已经上升不正如我所提到的问题。

curl https://apis.voicebase.com/v2-beta/media \ 
    --form [email protected] \ 
    --form 'configuration={ 
     "configuration": { 
     "language": "es-LA", 
     "keywords": { 
      "semantic": false 
     }, 
     "topics": { 
      "semantic": false 
     } 
     } 
    }' \ 
    --header "Authorization: Bearer ${TOKEN}" 
+0

你需要一个提交按钮为您的表格 – user10089632

+0

我很抱歉谢谢,我补充说这是一个错误不写,但这不是主要问题。 –

+0

如果您使用Chrome,请启用您的“开发人员工具”(Mozilla Firefox有类似功能)。然后你可以看到你正在发送和接收的HTTP请求 – cerebrotecnologico

回答

0

这里的问题是您在请求中缺少配置JSON文件。在cURL请求中,有一个元素开始:'configuration = {“configuration ...”'此配置对于v2-beta来说是必要的,以了解如何处理您正在上传的媒体文件。 您可以创建一个config.json文件,并通过在formData中创建另一个名为'configuration'的元素并附加configuration.json,将其添加到标题中的媒体文件中。

你想要的东西,如:

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

和你configuration.json文件应包含:

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

顺便说一句:谢谢你没有发布完整的访问令牌!访问令牌应该被视为等同于用户名和密码 - 不应该共享。

+0

谢谢Daniel O'Rorke,我会试试看。 –