如何使用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字符串。