2017-07-20 124 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,我會試試看。 –