【问题标题】:Azure Machine Learning - CORSAzure 机器学习 - CORS
【发布时间】:2015-03-15 06:59:09
【问题描述】:

我已经为此搜索了几个小时,但找不到任何可以回答这个问题的东西。我创建并发布了一个新的 Azure 机器学习服务,并创建了一个终结点。我可以使用 Postman REST 客户端调用该服务,但通过 JavaScript 网页访问它会返回一个控制台日志,说明该服务已启用 CORS。现在,对于我的生活,我无法弄清楚如何为 Azure 机器学习服务禁用 CORS。任何帮助将不胜感激,谢谢!

【问题讨论】:

  • 我的问题不在于构建查询(我使用的是 JS,而不是 ruby​​),而是 CORS 对 azure 的限制
  • 您介意我看到一个使用 JavaScript 的示例查询吗?
  • 我使用他们提供的示例 C# 代码来创建这个:govmind.azurewebsites.net 但我不喜欢 C#。我希望他们在 JS 中提供示例代码,但他们没有

标签: azure machine-learning cors azure-machine-learning-studio


【解决方案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)

见:https://stackoverflow.com/a/6083677/896697

【讨论】:

  • -1:OP 专门询问“我不知道如何为 Azure 机器学习服务禁用 CORS”。禁用本地浏览器安全性(本质上)是不安全的,并且对于将使用 Azure ML 发布的 Web 服务的生产应用程序来说不是解决方案。
【解决方案2】:

目前,我们不支持在 API 端禁用 CORS,但您可以使用上述选项,也可以使用 API 管理服务禁用 CORS。下面的链接应该可以帮助您解决这个问题

这里是链接:step by step 指南,还有这个 video 设置标题,this doc 策略。

API 管理服务通过在 API 配置页面中启用 CORS 来允许它

【讨论】:

  • 虽然这个答案解决了 OP 问题,但是已经发布的 Azure ML Web 服务(并且需要花费真钱)必须包含在 Azure API 管理服务中(这需要更多的钱)克服底层 Azure ML 服务中缺少的功能(禁用 CORS)在道德上充其量是令人反感的。
【解决方案3】:

只是 Azure ML Book 的摘录(可能会有用):

这个 CORS 限制实际上意味着如果你想充分利用 Azure 机器学习 Web 服务,用于部署、测试和 为各种(网络)客户端制作,您需要托管 您自己的服务器端应用程序。你基本上有两个选择。

  1. 托管 Web 应用程序,例如 ASP.NET 网页,并在服务器端调用 Azure 机器学习 Web 服务以符合当前的 Azure 机器学习 CORS 限制。
  2. 托管您自己的 Web 服务,该服务确实提供 CORS 支持,并且可以反过来通过现代协议和数据格式(如 REST 和 JSON)代表各种 Web 和移动客户端调用 Azure 机器学习 Web 服务。

【讨论】:

    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 2018-11-04
    • 2016-06-08
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多