我正在使用ajax put请求执行合并操作,以更新azure搜索索引中特定文档的名为DocType的字段。但是得到错误:无法加载资源:服务器响应状态为404(未找到)对预检请求的响应未通过访问控制检查:请求中不存在“Access-Control-Allow-Origin”标头资源
我正在执行的ajax请求:
var jsonMeta = {
"value": [
{
"@search.action": "merge",
"metadata_storage_path": "*******jkio********",
"DocType": "Test_Merge"
}
]
};
var jsonString = JSON.stringify(jsonMeta);
var url = "https://documentsmartdetect.search.windows.net/indexes/document-smartdetect-index/docs/index?api-version=2017-11-11";
$.ajax({
url: url,
method: 'PUT',
data: JSON.stringify(jsonMeta),
// This is the important part
xhrFields: {
withCredentials: true
},
crossDomain: true,
contentType: 'application/json',
headers: {
"api-key": "***************89**",
},
success: function (response) {
},
error: function (xhr, status) {
alert('error');
}
});
我也尝试过使用Allowed origin类型:all在azure portal上。需要一些帮助来解决CORS问题。
Azure Search不允许来自前端JavaScript的调用,因此您无法直接执行所需操作。您必须从后端调用Azure搜索。
这实际上是一个严重的安全问题,因为您的搜索键现在在JavaScript中公开发送给您的网络应用的所有访问者。