В моем проекте я хочу запрашивать данные через сторонний API.И столкнулся с проблемой CORS следующим образом:
В своем коде переднего плана я использую axios
для отправки запроса на получение ajax с наиболее простым использованием следующим образом:
getPositions () {
return axios.get('http://api.metro.net/agencies/lametro/vehicles/')
}
и, как видно из заголовка, браузер блокирует запрос следующим сообщением об ошибке:
Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response
Я кое-что знал о CORS и знал, что такое предпечатная проверка.Но все еще путают с вопросом.
Я проверяю проблему в devtools браузера.И обнаружил, что часть request headers
выглядит следующим образом:
Access-Control-Request-Headers: authorization
Access-Control-Request-Method: GET
Origin: http://localhost:3001
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36
Там был указан заголовок Access-Control-Request-Headers: authorization
.Я думаю, что это причина этой проблемы.Но Access-Control-Request-Headers
используется для того, чтобы сервер знал, какие заголовки HTTP будут использоваться при фактическом запросе Access-Control-Request-Headers .
Но я не планируючтобы отправить заголовок Authorization
, как я показал в своем коде, я вообще не установил никаких заголовков.Так почему браузер блокирует запрос?