Мое клиентское веб-приложение написано с использованием Angular, а на стороне сервера используется шлюз AWS API.
Я получаю сообщение об ошибке:
Access to XMLHttpRequest at <my destiniation> from origin <my origin> has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Где <my destination>
и <my origin>
не являются одним и тем же доменом.
Проблема в том, что у меня есть настройка CORS для поддержки этого. Моя установка использует предварительный запрос OPTIONS, за которым следует запрос PUT (PUT - это ошибка 403, и консоль показывает ошибку CORS). Ответ на запрос OPTIONS на самом деле включает access-control-allow-origin: *
, и самое странное, что мой запрос PUT завершится неудачей, только если один (или более) из моих аргументов параметра URL содержит в себе% 23 (например, в результате URL, кодирующий символ #).
Кто-нибудь знает, почему специальные символы в параметрах URL приводят к ошибке CORS, тогда как точно такой же запрос без специальных символов проходит CORS без каких-либо проблем? Чего мне не хватать?