Кажется, что ни одно из вышеперечисленных решений на самом деле не работает. - disable-web-security больше не поддерживается в последних версиях Chrome.
Allow-Control-Allow-Origin: * - расширение chrome частично решило проблему.Он работает только в том случае, если ваш запрос использует метод GET, а пользовательский заголовок HTTP отсутствует.В противном случае chrome отправит HTTP-запрос OPTIONS в качестве запроса перед полетом.Если сервер не поддерживает CORS, он ответит кодом состояния 404 HTTP.Плагин не может изменить HTTP-код ответа.Таким образом, Chrome отклонит этот запрос.Плагин Chrome не может изменить HTTP-код ответа на основе текущего API расширения Chrome.И вы не можете также выполнять перенаправление для запроса, инициированного XHR.
Не уверен, почему Chrome делает жизнь разработчиков настолько сложной.Он блокирует все возможные способы отключить проверку безопасности XSS даже для использования в разработке, которая совершенно не нужна.
После нескольких дней борьбы и исследований одно решение для меня идеально работает: использовать corsproxy .Здесь у вас есть два варианта: 1. использовать [https://cors -anywhere.herokuapp.com /] 2. установить corsproxy в локальном окне: npm install -g corsproxy
[Обновлено 23 июня 2018 г.] Недавно я занимаюсь разработкой приложения SPA, которому необходимо снова использовать corsproxy.Но, похоже, ни один из corsproxy на github не может удовлетворить мое требование.
- необходимо для запуска внутри брандмауэра по соображениям безопасности.Поэтому я не могу использовать https://cors -anywhere.herokuapp.com / .
- Он должен поддерживать https, поскольку chrome блокирует ajax-запрос no-https на странице https.
- Мне нужно работать на nodejs.Я не хочу поддерживать другой языковой стек.
Поэтому я решил разработать свою собственную версию corsproxy с помощью nodejs.Это на самом деле очень просто.Я опубликовал это как GIST на GitHub.Вот суть исходного кода: https://gist.github.com/jianwu/8e76eaec95d9b1300c59596fbfc21b10
- Это простой код nodejs без каких-либо дополнительных зависимостей
- Вы можете работать в режимах http и https (передавая номер порта https вкомандной строки), чтобы запустить https, вам нужно сгенерировать сертификат и ключ и поместить их в каталог webroot.
- Он также служит статическим файловым сервером.
- Он также поддерживает предварительный запрос OPTION.
Запуск сервера CORSProxy (http-порт 8080): узелstatic_server.js 8080
для доступа к прокси: http://host:8080/http://www.somesite.com