Как я могу принять ответы от API с несколькими субдоменами?

Я пишу прототипы веб-сайта, которые используют данные из сервера, которым я не управляю, ответ находится в JSON, и сервер не поддерживает JSONP, таким образом у меня есть проблемы с CORS, поскольку я разрабатываю в клиенте только.

Мне удалось обойти это путем выполнения локального апачского веб-сервера HTTP со следующими правилами ProxyPass в моем vhosts.conf

ProxyPass /api/de/ http://de.test.com/api/
ProxyPassReverse /api/de/ http://de.test.com/api/
ProxyPass /api/jp/ http://jp.test.com/api/
ProxyPassReverse /api/jp/ http://jp.test.com/api/
ProxyPass /api/ru/ http://ru.test.com/api/
ProxyPassReverse /api/ru/ http://ru.test.com/api/
ProxyPass /api/uk/ http://uk.test.com/api/
ProxyPassReverse /api/uk/ http://uk.test.com/api/

Поскольку Вы видите, что существует несколько субдоменов для того же домена, каждый для доступа к различной локали, в реальном выражении это означает, что я получаю данные на другом языке, который важен для моих прототипов.

Существует больше чем 30 языков, которые я хотел бы способность протестировать в моих прототипах, и я хочу знать, существует ли способ записать, что мой ProxyPass управляет динамично (или лучшее решение).

Я использую jQuery с getJSON методом и примером URL, который я поражаю, следующие

url = '/api/'+pos+'/data.html?destination=...

Где на месте продажи просто строка, я прохожу с 'de', 'мировым судьей', 'рутением' или 'Великобританией'

0
задан 29 April 2015 в 19:02
1 ответ

Вы можете добиться этого с помощью mod_rewrite

RewriteEngine On
RewriteRule /api/([a-z]+)/(.*) http://$1.test.com/api/$2 [P]

[P] на mod_rewrite заставляет его действовать как mod_proxy (из документа apache http://httpd.apache.org/docs/2.2 /rewrite/flags.html#flag_p):

Использование флага [P] приводит к тому, что запрос обрабатывается mod_proxy, и обрабатывается через прокси-запрос. Например, если вы хотите, чтобы все изображения запросы, которые будут обрабатываться внутренним сервером изображений, вы можете сделать примерно следующее:

RewriteRule /(.*).(jpg|gif|png) http://images.example.com/ $ 1. $ 2 [P]

0
ответ дан 5 December 2019 в 12:46

Теги

Похожие вопросы