如何使用angular js向azure ML web服务发布请求?

问题描述:

我正在尝试使用角度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' 
       } 

看来,你在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字符串。