Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure机器学习-CORS_Azure_Machine Learning_Cors_Azure Machine Learning Studio - Fatal编程技术网

Azure机器学习-CORS

Azure机器学习-CORS,azure,machine-learning,cors,azure-machine-learning-studio,Azure,Machine Learning,Cors,Azure Machine Learning Studio,我已经为此搜索了几个小时,却找不到一件能回答这个问题的东西。我已经创建并发布了一个新的Azure机器学习服务,并创建了一个端点。我可以使用Postman REST客户端调用该服务,但通过JavaScript网页访问它会返回一个控制台日志,说明已为该服务启用CORS。现在,就我个人而言,我不知道如何禁用Azure机器学习服务的CORS。任何帮助都将不胜感激,谢谢 您必须使用启动浏览器——禁用web安全性(即Chrome)。以下是一些jQuery,它允许我在用--disable web securi

我已经为此搜索了几个小时,却找不到一件能回答这个问题的东西。我已经创建并发布了一个新的Azure机器学习服务,并创建了一个端点。我可以使用Postman REST客户端调用该服务,但通过JavaScript网页访问它会返回一个控制台日志,说明已为该服务启用CORS。现在,就我个人而言,我不知道如何禁用Azure机器学习服务的CORS。任何帮助都将不胜感激,谢谢

您必须使用
启动浏览器——禁用web安全性(即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进程仍在后台运行。杀了这些人之后,用那个标志重新启动,看到了这个信息,它就成功了。(ChromeV40.0左右)


请参阅:

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

以下是链接:指南,以及关于设置标题和策略的链接


API管理服务通过在API配置页面启用CORS来允许CORS,这只是Azure ML手册的一个摘录(您可能会发现它很有用):

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

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

  • 我的问题不是构造一个查询(我使用的是JS,不是ruby),而是Azure上的CORS限制。如果我看到一个使用JavaScript的示例查询,你介意吗?我使用了他们提供的示例C代码来创建它:但我不喜欢C。我希望他们用JS提供示例代码,但他们没有-1:OP特别问“我不知道如何禁用Azure机器学习服务的CORS”。禁用本地浏览器安全性(本质上)是不安全的,对于将使用Azure ML发布的web服务的生产应用程序来说,这不是一个解决方案。尽管此答案解决了OP问题,但已经发布的Azure ML web服务(且成本很高)必须包装在Azure API管理服务中(这将花费更多的钱)仅仅为了克服底层Azure ML服务中缺失的一个功能(禁用CORS),充其量在道德上是令人反感的。