2016-11-14 5 views
0

Я хочу получить доступ к сайту API, размещенному на сервере с несколькими сайтами S. У меня есть IP-адрес S, но нет DNS-серверов, поэтому у меня есть чтобы сделать запрос HTTP со следующими параметрами:

{ 
    URL : 'http://192.168.1.xxx:80/data', 
    headers : { 
    Host : 'api.somesite.com' 
    }, 
    data : ... 
} 

Однако заголовок в «хозяин» автоматически заменяется на «Угловая 192.168.1.xxx» перед отправкой (и, таким образом, запрос не получится). я уже пытался реализовать HTTP-перехватчик:

api.run(['$http',function($http) { 
    console.log("set host"); 
    $http.defaults.headers.common.Host = "api.somesite.com"; 
}]); 

... без результатов: ответы сервера с ошибкой 500, и средство разработок показывает, что запрос имел заголовок «Host» настроен на адрес IP.

В качестве альтернативы существуют ли другие способы сделать HTTP-запрос на Веб-сайт, используя его ip (без DNS)?

+0

Это совершенно, совершенно невозможно. Заголовок 'Host:' управляется исключительно браузером. – SLaks

ответ

1

Host определяется как forbidden header name в спецификациях XMLHttpRequest/fetch, поэтому невозможно установить его из JavaScript в браузере.

Сортировка DNS, редактирование файла системных хостов по каждому клиенту или настройка каждого клиента на использование прокси-сервера HTTP, который знает, как разрешить URL-адрес, - это единственный способ решить эту проблему.