'Origin is not allowed by Access-Control-Allow-Origin' 自 2021 年以来
'Origin is not allowed by Access-Control-Allow-Origin' since 2021
对于一个学校项目,我和我的伙伴正在使用一个使用 Microsoft Azure 视频索引器 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
我们在之前运行的 Angular 应用程序集成中发现了同样的问题。看起来 'Access-Control-Allow-Origin: *' CORS header 已从 API 响应中删除,这是直接 Web 应用程序集成所必需的,无需诉诸 API 代理。
我们已经解决了这个问题。您将在 API 回复中得到“access-control-allow-origin: *”header。
你的API密钥(Ocp-Apim-Subscription-Key)是私人信息,你不应该在客户端暴露它。
您应该使用该密钥从您的 Web 服务器生成访问令牌,并将其与您的所有操作请求一起使用(在授权 header 处发送)。
也请从上面的示例中删除它。
对于一个学校项目,我和我的伙伴正在使用一个使用 Microsoft Azure 视频索引器 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
我们在之前运行的 Angular 应用程序集成中发现了同样的问题。看起来 'Access-Control-Allow-Origin: *' CORS header 已从 API 响应中删除,这是直接 Web 应用程序集成所必需的,无需诉诸 API 代理。
我们已经解决了这个问题。您将在 API 回复中得到“access-control-allow-origin: *”header。
你的API密钥(Ocp-Apim-Subscription-Key)是私人信息,你不应该在客户端暴露它。
您应该使用该密钥从您的 Web 服务器生成访问令牌,并将其与您的所有操作请求一起使用(在授权 header 处发送)。
也请从上面的示例中删除它。