Javascript 添加文档访问被拒绝
我们已经创建了一个AngularJS 1项目,我们可以使用POST成功地使用搜索功能。我们添加了一个控制器,用于将文档添加到索引中,但我们不断得到消息 XMLHttpRequest:网络错误0x80070005,访问被拒绝 和我们搜索的索引相同 我们已经为索引启用了CORS 这是我们的代码:Javascript 添加文档访问被拒绝,javascript,angularjs,cors,angularjs-http,azure-cognitive-search,Javascript,Angularjs,Cors,Angularjs Http,Azure Cognitive Search,我们已经创建了一个AngularJS 1项目,我们可以使用POST成功地使用搜索功能。我们添加了一个控制器,用于将文档添加到索引中,但我们不断得到消息 XMLHttpRequest:网络错误0x80070005,访问被拒绝 和我们搜索的索引相同 我们已经为索引启用了CORS 这是我们的代码: var value = [ { "@search.action": "mergeOrUpload", "id": vm.id, "name": vm.name, "key
var value = [
{
"@search.action": "mergeOrUpload",
"id": vm.id,
"name": vm.name,
"keywords": vm.keywords,
"url": vm.url
}
];
var url = "https://xxx.search.windows.net/indexes/xxx/docs/index?api-version=2015-02-28";
ModalService.showLoading();
$http({
method: "POST",
url: url,
headers: {
"api-key": "XXX",
"Content-Type": "application/json"
},
data: {
"value": value
}
})
.success(function (data, status) {
vm.results = data;
ModalService.hideLoading();
})
.error(function (data, status) {
ModalService.hideLoading();
ModalService.showError(data);
});
有一些文档可以使用REST添加新文档,所以我不确定我们缺少了什么。Azure Search只允许通过CORS进行查询。这记录在: CORS选项 默认情况下,客户端JavaScript无法调用任何API,因为浏览器将阻止所有跨源请求。要允许对索引进行跨源查询,请通过设置corsOptions属性启用CORS(跨源资源共享)。请注意,出于安全原因,只有查询API支持CORS 原因是您的客户机需要访问管理API密钥才能修改索引,而且由于您不能真正信任客户机,这似乎是个坏主意 我们建议您执行任何操作,通过可以首先对客户端进行身份验证的服务修改索引