Azure机器学习 - CORS

时间:2015-01-16 16:00:31

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

我已经为此搜索了几个小时,却无法找到回答问题的单一内容。我创建并发布了一个新的Azure机器学习服务,并创建了一个端点。我可以使用Postman REST CLient调用该服务,但是通过JavaScript网页访问它会返回一个控制台日志,说明为该服务启用了CORS。现在,就我而言,我无法弄清楚如何为Azure机器学习服务禁用CORS。非常感谢任何帮助,谢谢!

3 个答案:

答案 0 :(得分:5)

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

以下是链接:step by step指南,设置标题的video以及政策的this doc

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

答案 1 :(得分:2)

您必须使用--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

答案 2 :(得分:0)

Azure ML Book的摘录(可能会发现它很有用)

  

此CORS限制确实意味着,如果您希望充分利用   Azure机器学习Web服务用于部署,测试和   为各种各样的(网络)客户进行生产,您将需要主持   您自己的服务器端应用程序。您基本上有两种选择。

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