Как я отправляю запрос Ajax на другом порте с jQuery?

Я должен отправить запрос Ajax к, например, порт 8080, куда демон работает туда.

37
задан workdreamer 13 July 2012 в 13:47
поделиться

3 ответа

Вы не можете Post Информационный перекрестный домен, поддомен или номер порта. Однако вы можете использовать JSONP, если у вас есть доступ к демону , так и запрашивающий сайт. Если данные должны быть возвращены, то демон должен поддерживать параметр Callback , и вернуть его правильно отформатированным.

Передайте информацию к демону:

$.getJSON('http://domain.com:8080/url/here?callback=?', {
  key: 'value',
  otherKey: 'otherValue'
}, function(data){
     // Handles the callback when the data returns
});

Теперь просто убедитесь, что ваш демон обрабатывает обратный вызов . Например, если Callback = MyCallback Возврат от демона (единственное, что записано на страницу), должна выглядеть так:

для пар клавиши / значения:

mycallback( {'returnkey':'returnvalue', 'other':'data' });

для массива:

mycallback( [1,2,3] );

Если у вас нет JSONP или аналогичного механизма на месте, вы не можете обмениваться пересеченным доменом, используя jQuery.

31
ответ дан 27 November 2019 в 04:34
поделиться

Это разрывает политику . Вы не можете использовать другой порт, даже при использовании того же домена.

Вы можете использовать JSONP AS Doug .

Или иначе, как еще один возможный обходной путь, вы можете создать очень простое обратный прокси (с использованием MOD_PROXY , если вы находитесь в Apache). Это позволит вам использовать относительные пути в вашем запросе AJAX, а HTTP-сервер будет действовать как прокси-сервер в любое «удаленное» местоположение.

Фундаментальная директива конфигурации для настройки обратного прокси в MOD_PROXY - проксипасс. Вы обычно используете его следующим образом:

ProxyPass     /ajax/     http://www.localhost:8080/

В этом случае вы бы запрос /ajax/test.xml с jQuery, но на самом деле сервер будет служить этому, действуя как прокси-сервер для http: //www.localhost: 8080 / test.xml Внутри.

Если вы используете IIS, вы можете использовать функцию Управляемого Rewriter URL-URL-адреса и обратный прокси для настройки обратного прокси.

41
ответ дан 27 November 2019 в 04:34
поделиться

Это относится к другому происхождению, даже если у вас его на одном поле, просто другой порт.

Если вы нацеливаете в основном новые браузеры, такие как Firefox 3.5 и up, вы можете попытаться добавить элементы управления доступ к вашему приложению в другом порту и разрешить звонить из пула приложения по умолчанию. Информация о ходах управления доступом можно найти здесь: https://developer.mozilla.org/en/http_access_Control

IE также реализует его (опять же, используя другой элемент управления ActiveX, почему так?): http://blogs.msdn.com/ie/archive/2009/01/14/Completing-access-Control-support-for-xdomainrequest.aspx и http://msdn.microsoft.com /en-us/library/cc288060(vs.85).aspx

2
ответ дан 27 November 2019 в 04:34
поделиться
Другие вопросы по тегам:

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