Проблемы с CORS в Azure Search
Мы изменили параметры CORS в нашем существующем поисковом индексе Azure, чтобы "разрешить все источники", но при запросе API-интерфейса из браузера по-прежнему выбрасывается исключение "Нет заголовка" Access-Control-Allow-Origin "...",
Существуют ли какие-то конкретные параметры, которые нам не хватает, или в Azure есть более глобальные параметры CORS, которые перезаписывают параметры в индексе?
Благодарю.
3 ответа
Я решил это с моей стороны.
Поскольку вы получаете ошибку 403: запрещено, возможно, браузер предполагает, что это проблема с CORS. Однако в моем случае я тоже получал эту ошибку от Почтальона. Моя проблема заключалась в том, что я не добавлял ключ API в URL:
&api-key=YOURAPIKEY
https://NAMEOFYOURSERVICE.search.windows.net/indexes/YOURINDEX/docs?api-version=2015-02-28&search=SEARCHQUERY&api-key=YOURAPIKEY
И чтобы найти свой ключ API, посмотрите на изображение ниже. У меня было 3 ключа, чтобы попытаться найти, что последний работал...
RE: принятый ответ, показывающий экран ключей. Есть два типа api-ключей: Admin и Query.
- Ключи администратора можно указать только в заголовке HTTP-запроса.
- Ключи запроса предоставляют доступ только для чтения в индексе и могут быть указаны либо в заголовке HTTP-запроса, либо в качестве параметра запроса в вашем URL-адресе.
Третий ключ, который попробовал mogile_oli и который сработал, был ключом запроса.
Раскрытие ключа администратора (первые две попытки mogile_oli) в качестве параметра запроса в URL-адресе представляет угрозу безопасности!
См. Раздел Аутентификация и авторизация в теме REST службы поиска Azure.
Скорее всего, старые настройки CORS кэшировались на стороне клиента. Время жизни по умолчанию составляет 5 минут, если вы не установите maxAgeInSeconds.
По какой-то причине все сработало, когда мы изменили группу ресурсов экземпляра поиска.