XMLHttpRequest
следует политике CORS, что означает, что вы должны поместить заголовок ORIGIN
в свой запрос, чтобы сервер мог проверить ваш хост (однако это не гарантирует, что вашему приложению будет предоставлен доступ к ресурс)
В вашем случае просто установить заголовок ORIGIN
недостаточно по двум причинам:
- вы используете настраиваемый заголовок
- вы используете
content-type
кроме text/plain
, что означает, что вы должны сначала запросить у сервера разрешение на выдачу запроса, прежде чем отправлять сам запрос (это называется «предварительная проверка»).
Этот запрос на разрешение выполняется с использованием метода HTTP OPTIONS
и выглядит следующим образом (в вашем случае):
OPTIONS /instances/9d2bd18a-8017-4e44-8de9-acc01a9f0795/v1/analyze HTTP/1.1
Origin: http://(or https://)your_host
Access-Control-Request-Method: POST
Access-Control-Request-Headers: Authorization
Сервер ответит либо «предоставлено разрешение», либо «отказано в разрешении» ». Если разрешение предоставлено, вы можете продолжить выполнение фактического запроса POST. Если разрешение отклонено, ваш хост заблокирован для отправки запроса на этот сервер.