Ошибка CORS: ответ на предварительный запрос не проходит проверку контроля доступа при попытке доступа к Azure Search Api - PullRequest
0 голосов
/ 14 сентября 2018

Я использую запрос ajax put для выполнения операции слияния, чтобы обновить поле с именем DocType для конкретного документа в поисковом индексе Azure.Но получаю сообщение об ошибке: Не удалось загрузить ресурс: сервер ответил с состоянием 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');
            }
        });

Я также пытался использовать тип разрешенного источника: все на портале Azure.Нужна помощь для решения проблемы с CORS.

1 Ответ

0 голосов
/ 14 сентября 2018

Поиск Azure не разрешает звонки из интерфейсного JavaScript, поэтому вы не можете делать то, что хотите, напрямую.Вам придется вызывать Поиск Azure из бэкэнда.

На самом деле это серьезная проблема безопасности, поскольку ваш ключ поиска теперь открыт в рамках JavaScript, который отправляется всем посетителям вашего веб-приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...