CORS错误:在尝试访问Azure Search Api时,对预检请求的响应未通过访问控制检查

问题描述 投票:0回答:1

我正在使用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问题。

javascript jquery ajax azure
1个回答
0
投票

Azure Search不允许来自前端JavaScript的调用,因此您无法直接执行所需操作。您必须从后端调用Azure搜索。

这实际上是一个严重的安全问题,因为您的搜索键现在在JavaScript中公开发送给您的网络应用的所有访问者。

© www.soinside.com 2019 - 2024. All rights reserved.