2015-05-21 3 views
3

Я разрабатываю приложение, использующее ember-cli, и ему нужно отправить HTTP-запрос на сервер с помощью ProxyPass.Ember-cli ProxyPass

Мой сервер выглядит следующим образом: subdomain.domain.com/api/clients/users и Эмбер-кли создать по умолчанию http://localhost:4200/

Я пытался сделать это в моем http.conf:

ProxyPass /api/clients http://subdomain.domain.com/api/clients 

Это работает отлично для http://localhost/api/clients, но я не знаю, как сделать это работает с нестандартным портом, таких как 4200.

Я также пытаюсь создать VirtualHost, но это то же самое:

<VirtualHost *:4200> 
    ProxyPass /api/clients http://subdomain.domain.com/api/clients 
</VirtualHost> 

Как я могу это сделать?

[EDIT]: Я поставил мой RESTAdapter так:

var ApplicationAdapter = DS.RESTAdapter.extend({ 
    namespace: 'api/clients' 
}); 
+0

Непонятно, что вы просите здесь. Когда вы развертываете свое приложение ember для производства, оно будет на порту 80 обычно (вы не используете ember-cli для обслуживания сайта в процессе производства), и вы будете использовать ProxyPass для направления вашего API из любого другого порта в порт 80. Вы спрашиваете, как тестировать ваш API во время разработки? Вам не нужен apache, если это так. –

+0

У меня есть приложение ember в моем локальном хосте, а не развертывание на сервере, proxypass - это просто для моего localhost apache не для сервера. Мне нужно настроить его с моего локального хоста, чтобы я мог отправить запрос на сервер. Извините, если я неясно .. Потому что, если я установлю хост и пространство имен в моем приложении, он меня бросит: заголовок 'o 'Access-Control-Allow-Origin' присутствует на запрошенном ресурсе. Origin 'http: // localhost: 4200', следовательно, не разрешен доступ. ' – SuperMarco

ответ

4

В процессе разработки, вы должны использовать генератор HTTP-прокси, чтобы создать путь к API. ember help generate перечисляет синтаксис:

http-proxy <local-path> <remote-url> 
    Generates a relative proxy to another server. 

Это создает прокси-сервер, который существует только в процессе развития (в /server/proxies/), и не компилируются в производственной сборке. Это, вероятно, что вы ищете, основанный на том, что вы предоставили выше:

ember generate http-proxy api http://subdomain.domain.com 

Ember использует node-http-proxy для создания прокси-сервера, так что вы можете настроить его больше, используя эту документацию, если это необходимо.

+0

Кажется, это именно то, что я ищу. Я сделал «ember генерировать http-proxy api http://subdomain.domain.com/api», но он пытается достичь http: // localhost: 4200/api/clients/users для GET вместо http: // subdomain. domain.com/api/clients/users. Нужно ли мне устанавливать что-то еще? – SuperMarco

+0

Он * должен * поражать API на локальном хосте, но после этого он должен быть проксирован на ваш другой сайт, если он работает правильно. Возможно, это должно было быть/api вместо api - перейти к '/ server/proxies/api.js' и проверить переменную proxyPath в верхней части. Если он читает 'proxyPath = 'api'', попробуйте изменить его на'/api'' и посмотреть, исправляет ли он его. Вы можете ударить свой API по адресу http: // localhost: 4200/api/clients/users вручную и увидеть тот же ответ, как если бы вы попали на ваш путь поддомена. –

+0

Кажется, что ember генерирует put автоматически/если мы не устанавливаем один, который в любом случае будет правильным proxyPath в api.js. Даже пытаюсь ударить по URL-адресу вручную, но это 404. Я даже пытался запустить ember server -proxy http://subdomain.domain.com/api/, но это то же самое – SuperMarco

Смежные вопросы