使用 Javascript Ajax 调用的 Azure 机器学习
Posted
技术标签:
【中文标题】使用 Javascript Ajax 调用的 Azure 机器学习【英文标题】:Azure Machine Learning using Javascript Ajax call 【发布时间】:2016-09-21 22:39:19 【问题描述】:我想知道是否可以使用 javascript Ajax 调用 Azure 机器学习 Web 服务。
Azure ML 提供了 C#、Python 和 R 的示例代码。
我确实尝试过使用 JQuery Ajax 调用 web 服务,但它返回失败。
我可以使用 python 脚本调用相同的服务。
这是我的 Ajax 代码:
$.ajax(
url: webserviceurl,
type: "POST",
data: sampleData,
dataType:'jsonp',
headers:
"Content-Type":"application/json",
"Authorization":"Bearer " + apiKey
,
success: function (data)
console.log('Success');
,
error: function (data)
console.log('Failure ' + data.statusText + " " + data.status);
,
);
【问题讨论】:
返回什么故障?您正在查看 statusText 和状态。他们说什么?控制台是否显示任何错误?如果您注意error
函数的第二个和第三个参数,它们是否说了什么有用的东西?浏览器开发者工具的“网络”选项卡显示什么?是否正在提出请求?它得到响应了吗?
我收到错误 404。在研究了更多之后,我发现 Azure ML 不支持 CORS。 link.
【参考方案1】:
根据我的经验,这似乎是超时造成的,所以我认为您可以尝试参考SO线程Set timeout for ajax (jQuery)的答案来设置ajax请求的超时。
希望对您有所帮助。
有一个已回答的 SO 线程 Azure Machine Learning - CORS 与您的问题类似。我觉得很有帮助,请尝试。
【讨论】:
我确实尝试过,但我认为这不是一个真正的问题。起初我收到 CORS 错误,为了解决这个问题,我将数据类型添加为 jsonp。现在我收到 404 错误代码。 Azure ML Web 服务设置有什么可以做的吗? @Tilak 嗨,我更新了我的帖子,请尝试。如果有任何更新,请随时告诉我。 @PeterSmith 是的..这就是我发现 Azure ML 不支持 CORS【参考方案2】:由于未在 Azure ML Web 服务上启用 CORS,因此无法正常工作。您可以使用可从 JavaScript 调用的 Azure API 管理来包装 Azure ML Web 服务 - https://azure.microsoft.com/en-us/documentation/articles/api-management-get-started/
【讨论】:
【参考方案3】:经过大量的 RnD,我终于能够使用一些变通方法调用 Azure ML。
在 Azure API 上包装 Azure ML Web 服务是一种选择。
但是,我所做的是创建了一个调用 Azure 网络服务的 Python 网络服务。
所以现在我的 html 应用程序调用 python webservice,它调用 Azure ML 并将数据返回给 HTML 应用程序。
【讨论】:
以上是关于使用 Javascript Ajax 调用的 Azure 机器学习的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 javascript/jquery/AJAX 调用 Django REST API?
使用ajax调用从javascript保存txt文件到PHP