首页 文章

Azure机器学习 - CORS

提问于
浏览
9

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

3 回答

  • 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中看到该警告 . 我没有 grab ,因为一些Chrome进程仍然在后台运行 . 在杀死那些之后,重启那个标志,看到消息,它起作用了 . (Chrome v40.something)

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

  • 5

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

    以下是链接:step by step指南,设置 Headers 上的此video和有关策略的this doc .

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

  • 0

    只是摘自Azure ML Book(可能会发现它很有用):

    此CORS限制实际上意味着,如果您希望完全利用Azure机器学习Web服务进行各种(Web)客户端的部署,测试和 生产环境 ,您将需要托管自己的服务器端应用程序 . 你基本上有两个选择 .

    • 托管Web应用程序(如ASP.NET网页),并调用Azure机器学习Web服务服务器端以符合当前Azure机器学习CORS限制 .

    • 托管您自己的Web服务,该服务提供CORS支持,并可以通过现代协议和数据格式(如REST和JSON)代表各种Web和移动客户端调用Azure机器学习Web服务 .

相关问题