2017-02-08 12 views
0

У меня возникла проблема при попытке выполнить HTTP-запрос, когда мое приложение NodeJS по какой-то нечетной причине решает добавить мой домен в URL-адрес, который я установил в своем HTTP-запросе. Как я могу убедиться, что этого не происходит?URL-адрес в запросе изменяется перед запуском

Я пробовал искать похожие проблемы, но не нашел ни одного. Возможно, я не уверен, что на самом деле искать.

Вот что я хочу, чтобы запустить:

$.ajax({ 
    url: 'xxx.xxx.xxx.xxx', 
    type: 'PUT', 
    headers: { 
     'value': 'value', 
     'value2': 'value2' 
    }, 
    success: function(result) { 
     // extra code... 
    } 
});  

И это то, что происходит в запросе, как видно из консоли:

$.ajax({ 
    url: 'http://localhost:8080/xxx.xxx.xxx.xxx', // (added localhost) 
    type: 'PUT', 
    headers: { 
     'value': 'value', 
     'value2': 'value2' 
    }, 
    success: function(result) { 
     // extra code... 
    } 
}); 

Стоит отметить (возможно), что если я добавьте http: // в мой URL-адрес запроса, который не изменяется при запуске, но этот URL-адрес не принят. Этот запрос должен выполняться на стороне клиента, т. Е. В браузере.

+0

- это «xxx.xxx.xxx.xxx» URL-адрес другого веб-сайта? –

+0

Возможно, вы могли бы попробовать использовать '// xxx.xxx.xxx.xxx'? – Moose

+0

Это, или хорошо, это URL-адрес сервера. Я попытался с //, и это сработало, но я понял, что мне пришлось добавить порт, а то, что кажется невозможным с обычным AJAX-запросом в браузере. Так что теперь мне нужно найти новое решение ... – Erik

ответ

0

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

По умолчанию для ajax() требуется запросить текущую страницу, которая равна http://localhost:8080, и потребовалось то, что вы указали как путь на этой странице.

Попробуйте вместо этого:

URL: 'http://xxx.xxx.xxx.xxx',

+0

Спасибо за ваш ответ, я действительно не знал, что вам нужно было добавлять протокол при использовании IP-адресов напрямую. К сожалению, http: // не работает для меня, я понял, что мне также нужно добавить порт, что кажется невозможным с обычным AJAX-запросом в браузере. Так что теперь мне нужно найти новое решение ... – Erik

0

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

Относительный URL: пользователь/1

Текущее местоположение: http://google.com/products

Результат: http://google.com/products/user/1

или

Относительный URL:/пользователь/1

Текущее местоположение: http://google.com/products

http://google.com/user/1

0

если xxx.xxx.xxx.xxx является гиперссылка на другой сайт, вы должны будете указать протокол или xxx.xxx.xxx.xxx будет как относительные интерпретируются с дорожка.

В целом это относится и к атрибутам src (для img, srcipt и iframe ...). Любые ссылки на странице будут рассматриваться как относительные пути, если не указан их протокол.

Например: (только для объяснения) на Windows, если у вас есть путь some\thing, это будет относительно везде, где вы пытаетесь получить к нему доступ (абсолютный путь, где вы пытаетесь получить доступ будет автоматически добавляется к пути some\thing). Но если ваш путь равен C:\some\thing, тогда он будет всегда таким же, где бы он ни находился.Протоколы работают аналогичным образом.

+0

Вы прекрасно это объяснили, спасибо! Теперь я ищу другое решение, поэтому я не уверен, что я должен выбрать ответ в качестве решения или просто дать ему немного. – Erik

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

  • Нет связанных вопросов^_^