我已经为此搜索了几个小时,但找不到任何可以回答问题的东西。我创建并发布了一个新的 Azure 机器学习服务,并创建了一个终结点。我可以使用 Postman REST 客户端调用该服务,但通过 JavaScript 网页访问它会返回一个控制台日志,说明该服务已启用 CORS。现在,对于我的生活,我无法弄清楚如何为 Azure 机器学习服务禁用 CORS。任何帮助将不胜感激,谢谢!
问问题
2992 次
3 回答
1
您必须使用--disable-web-security
(Chrome 即)启动您的浏览器。这是一些 jQuery,它允许我在使用 --disable-web-security 重新启动浏览器后调用该服务:
$(document).ready(function () {
var ajaxData = "-- the request body ";
var serviceUrl = "https://ussouthcentral.services.azureml.net/workspaces/00e36959fc3e4673a32eae9f9b184346/--whatever";
$.ajax({
type: "POST",
url: serviceUrl,
data: ajaxData,
headers: {
"Authorization": "Bearer --API KEY HERE--",
"Content-Type": "application/json;charset=utf-8"
}
}).done(function (data) {
console.log(data);
});
});
那返回了数据。注意:确保您在 Chrome 中看到该警告。我没有第一时间,因为一些 Chrome 进程仍在后台运行。杀死那些后,使用该标志重新启动,看到消息,它起作用了。(Chrome v40.something)
于 2015-01-28T10:12:41.917 回答
1
只是 Azure ML Book 的摘录(可能会有用):
这种 CORS 限制实际上意味着,如果您希望充分利用 Azure 机器学习 Web 服务来为各种(Web)客户端进行部署、测试和生产,您将需要托管自己的服务器端应用程序。你基本上有两个选择。
- 托管 Web 应用程序,例如 ASP.NET 网页,并在服务器端调用 Azure 机器学习 Web 服务以符合当前的 Azure 机器学习 CORS 限制。
- 托管您自己的 Web 服务,该服务确实提供 CORS 支持,并且可以反过来通过现代协议和数据格式(如 REST 和 JSON)代表各种 Web 和移动客户端调用 Azure 机器学习 Web 服务。
于 2018-08-31T08:18:09.727 回答