Я только что отказался от create-react-app и продолжаю сталкиваться с проблемами CORS. Я пробовал следующее внутри webpack-dev-server:
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, PATCH, OPTIONS',
'Access-Control-Allow-Headers': 'X-Requested-With, content-type, Authorization',
'Access-Control-Allow-Credentials': true
},
А также с промежуточным программным обеспечением express:
before(app, server) {
app.use(cors());
// ...
}
Ни один из этих подходов не работает, поэтому я решил запустить свой браузер для локальной разработки, отключив веб-безопасность. Проблема, похоже, в том, что все вызовы API получают соответствующий headers, однако ресурс, вызывающий ошибку, является встроенным скриптом, который мы включаем в index.html. Любые идеи?
Ошибка в браузере:
Access to XMLHttpRequest at '***URL***' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
обновлено, @rpadovani
Можете ли вы убедиться, что вы получаете эти заголовки обратно, то есть как выглядит ответ в инструментах разработчика вашего браузера? AFAIK вам не нужно указывать Content-Type или Authorization в списке allow-headers, но это не должно быть проблемой.
Как я могу это проверить, @Rup?
Если вы используете Chrome, откройте инструменты разработчика при отправке запроса, а затем вы можете использовать вкладку «Сеть», чтобы увидеть заголовки и тело ответа. Я ожидаю, что другие браузеры тоже сделают это, но не знаю, как именно: где бы вы ни нашли консоль JavaScript, я ожидаю увидеть вашу ошибку.
@Detuned, пожалуйста, проверьте код на стороне сервера (локальный: 3000), включен ли фильтр CORS или нет
***URL*** должен возвращать эти заголовки, вы не можете установить их с запрашивающей стороны, это не то, как работает CORS.
Я понимаю, в чем проблема ... все вызовы API, проходящие через WebPack, имеют заголовки, однако ресурс, вызывающий ошибку, на самом деле является встроенным скриптом. У нас есть внешний ресурс, который требуется просто вставить на нашу веб-страницу. Есть идеи о том, как решить эту проблему CORS? Спасибо за помощь!!!
Предположение, может ли это быть комбинация домена '*' и учетных данных правдой?
Не понимаю, что вы имеете в виду, @RemcoGerlich
На прошлой неделе у меня была проблема, когда браузер жаловался, что в моих заголовках CORS есть как allow-origin: '*', так и allow-credentials: true. Это сработало, когда я поместил определенные домены в allow-origin. Но я просто гадаю на встрече.





Какая у вас ошибка?