2017-06-05 104 views
0

我正在嘗試使用角度js爲azure ML模型構建UI。我設計了一個使用ng-model捕獲用戶輸入的HTML頁面。這個工作中現在面臨的問題是,獲取400錯誤的請求錯誤,因爲azure期望以下述格式發送POST請求中的數據。當我在Post Request中測試此示例值時,我會收到200條成功消息。我應該如何發送POST請求中的值的用戶輸入。感謝任何幫助。如何使用angular js向azure ML web服務發佈請求?

Azure的預期請求體樣本:

{ 

"Inputs": { 

    "input1": { 
     "ColumnNames": [ 
     "col1", 
     "col2", 
     "col3"  
     ], 
     "Values": [ 
     [ 
     "value1", 
     "value2", 
     "value3" 
     ] 
     ] 
    } 
    }, 
    "GlobalParameters": {} 
} 

我測試JavaScript是

$http ({ 

      method : 'POST', 
      url  : 'url', 
      data : '{"Inputs": {"input1": {"ColumnNames": ["col1","col2","col3"],"Values": ["value1","value2","value3"]]}}}', 

      headers : {'Content-Type': 'application/json',      
       'Authorization' : 'Bearer apikey' 
       } 

回答

0

看來,你在angularjs應用程序錯誤,當生成數據有效載荷。

在該樣品中,

"Values": [ 
     [ 
     "value1", 
     "value2", 
     "value3" 
     ] 
     ] 

value是嵌套陣列。

然而,在你的主音代碼片段:

{"Inputs": {"input1": {"ColumnNames": ["col1","col2","col3"],"Values": ["value1","value2","value3"]]}}} 

這是一個invaild JSON對象。 (缺少[ behide "Values")。

我建議你可以生成一個對象作爲請求正文樣本顯示,並直接在$http的post body有效載荷中設置id對象,而不是手動編寫json字符串。

相關問題