0

对于一个学校项目,我和我的伙伴正在使用一个使用 Microsoft Azure Video Indexer API 的网页,从上周开始一切正常,但现在我每次都出现这个错误。我以为是因为新年,因为它停止工作1 月 1 日。奇怪的是,相同的代码片段不再起作用了。例如,在 API 网站上提出的用于获取令牌的示例并没有

<!DOCTYPE html>
<html>
<head>
    <title>JSSample</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>

<script type="text/javascript">
    $(function() {
        var params = {
            // Request parameters
            "allowEdit": "False",
        };
      
        $.ajax({
            url: "https://api.videoindexer.ai/Auth/trial/Accounts/198UE0192/AccessToken?" + $.param(params),
            beforeSend: function(xhrObj){
                // Request headers
                xhrObj.setRequestHeader("x-ms-client-request-id","");
                xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","108D193J");
            },
            type: "GET",
            // Request body
            data: "{body}",
        })
        .done(function(data) {
            alert("success");
        })
        .fail(function() {
            alert("error");
        });
    });
</script>
</body>
</html
4

2 回答 2

1

我们已经解决了这个问题。您将在 API 响应中获得“access-control-allow-origin: *”标头。

您的 API 密钥(Ocp-Apim-Subscription-Key)是私有信息,您不应在客户端公开它。

您应该使用该密钥从您的 Web 服务器生成访问令牌,并将其与您的所有操作请求一起使用(在 Authorization 标头中发送)。

也请从上面的示例中删除它。

于 2021-01-11T10:21:28.453 回答
0

我们在以前工作的 Angular 应用程序集成中看到了同样的问题。看起来“Access-Control-Allow-Origin: *” CORS 标头已从 API 响应中删除,这是直接 Web 应用程序集成所必需的,无需借助 API 代理。

于 2021-01-08T12:35:53.043 回答