JQuery объединяет URL с помощью переменной - PullRequest
0 голосов
/ 23 августа 2011

При загрузке на хост-сервер следующий код успешно превращается в http://myexample.com/otherpartsofpath:

 ajax: {
        url: 'http://' + window.location.hostname + '/otherpartsofpath', 
        type: 'GET',
        ...

Но при визуализации на локальном компьютере выдает ошибку. Вот почему в этом случае я должен определить URL явно:

 ajax: {
        url: 'http://localhost:10930/otherpartsofpath', 
        type: 'GET',
        ...

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

Ответы [ 3 ]

3 голосов
/ 23 августа 2011

Использование относительного пути /test всегда приводит к правильному протоколу, имени хоста и порту.Таким образом, для удобства вы всегда можете просто использовать:

 ajax: {
        url: '/otherpartsofpath', 
        type: 'GET',
        ...

При работе на http://test.com/directory/test.html это http://test.com/otherpartsofpath.

При работе на http://localhost:1234/directory/test.html это http://localhost:1234/otherpartsofpath.

1 голос
/ 23 августа 2011

Если вы не подключены к порту 80 локально, вам придется сделать что-то вроде

var hostName = window.location.hostname;
if ( window.location.port != '') {
    hostName += ':' + window.location.port;
}

и использовать это в своем URL-адресе AJAX.

1 голос
/ 23 августа 2011

Вы не можете по соображениям безопасности .

Использовать локальный сервер для тестирования.Установите прокси , если вы хотите получать данные с удаленного сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...