Как использовать Cors где угодно, чтобы изменить прокси и добавить заголовки CORS
Я два часа читаю документацию этого обратного прокси-сервера, чтобы добавить заголовки CORS, и я не могу использовать. Можете ли вы помочь с простым примером, как использовать это.
Я пробовал этот пример в JavaScript
(function() {
var cors_api_host = 'cors-anywhere.herokuapp.com';
var cors_api_url = 'https://' + cors_api_host + '/';
var slice = [].slice;
var origin = window.location.protocol + '//' + window.location.host;
var open = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function() {
var args = slice.call(arguments);
var targetOrigin = /^https?:\/\/([^\/]+)/i.exec(args[1]);
if (targetOrigin && targetOrigin[0].toLowerCase() !== origin &&
targetOrigin[1] !== cors_api_host) {
args[1] = cors_api_url + args[1];
}
return open.apply(this, args);
};
})();
Я не понимаю, действительно ли мне нужен node.js или что именно
4 ответа
CORS Anywhere помогает получить доступ к данным с других веб-сайтов, что обычно запрещено той же политикой происхождения веб-браузеров. Это делается путем передачи запросов на эти сайты через сервер (в данном случае написанный на Node.js).
"Чтобы использовать API, просто добавьте URL к URL API"., Это действительно все. Итак, вместо того, чтобы просить http://example.com
, вы будете запрашивать https://cors-anywhere.herokuapp.com/http://example.com
, Затем CORS Anywhere сделает запрос от имени вашего приложения и добавит заголовки CORS к ответу, чтобы ваше веб-приложение могло обработать ответ.
Фрагмент из вашего вопроса автоматически изменяет URL для запросов, сгенерированных XMLHttpRequest
если нужно. Этот фрагмент не обязателен, вы можете просто добавить URL-адрес CORS Anywhere API самостоятельно, как это сделано на демонстрационной странице.
Репозиторий на Github ( https://github.com/Rob--W/cors-anywhere) содержит исходный код сервера, на котором работает CORS Anywhere. Если вы являетесь разработчиком внешнего интерфейса, то это все, что вам нужно знать. Если в вашем приложении много пользователей, вам следует самостоятельно разместить CORS Anywhere, чтобы не использовать все ресурсы на общедоступном сервере CORS Anywhere.
Я откладываю на Роба, но вот моя попытка ответить на ваш вопрос.
(Роб, пожалуйста, не стесняйся исправлять этот ответ; и спасибо за CORS Anywhere. Это недавно спасло меня от неприятностей.)
- Установите Node.js.
Установите CORS Anywhere.
Например, в командной строке введите:
npm install cors-anywhere
(В этом примере команда устанавливает CORS Anywhere в текущем каталоге, в
node_modules\cors-anywhere
.)Запустите CORS Anywhere.
Например, в командной строке введите:
node cors-anywhere.js
CORS Anywhere отвечает следующим сообщением:
Running CORS Anywhere on 127.0.0.1:8080
(IP-адрес 127.0.0.1
является localhost
; твой компьютер.)
Вы можете указать порт в переменной окружения, но я решил отредактировать значение в моей локальной копии cors-anywhere.js
,
Теперь предположим, что вы хотите использовать веб-службу без поддержки CORS по следующему URL-адресу:
http://remote.server.com:8085/service
Вместо использования этого исходного URL-адреса вы используете домен и порт CORS Anywhere, а затем исходный URL-адрес в качестве компонента пути:
http://localhost:8080/remote.server.com:8085/service
(Вы можете опустить ведущий http://
с оригинального URL.)
[Я понимаю, что корка, которую я использую, отличается от твоей. Я использую это без дефиса, корсона где угодно, а не корсона где угодно. Так что вы можете попробовать это, если хотите, поскольку он, кажется, все еще работает нормально:
https://corsanywhere.herokuapp.com/https://api.yelp.com/v3/busshops/search?term=pizza&location=$dallas&sort_by=rating Изменить: похоже, это (без дефиса) не может быть официальной версией, поэтому используйте его с осторожностью.]1
Вы также можете проверить это: https://github.com/Zibri/cloudflare-cors-anywhere
Вы можете сделать свой собственный за 3 минуты, загрузив код в бесплатный воркер Cloudflare!