2010-04-21 2 views
5

У меня есть сервер в нашей интрасети, в которой работает JBoss. Я хочу отправить вызовы API на этот сервер с моей машины, также в интрасети, и получить полученные ответы XML с помощью JQuery.Как применяется одна и та же политика происхождения к IP-адресам

Я прочитал запись на Wikipedia, но я смущен, как это относится к моей ситуации, поскольку наши машины имеют только IP-адреса, а не доменные имена.

У меня есть

  • сервер URL: 10.2.200.3:8001/serviceroot/service
  • клиент IP-адрес: 10.2.201.217

Мои вопросы:

  1. Насколько я знаю d это разные домены, не так ли? Поэтому я должен использовать прокси-сервер, чтобы вызывать вызовы JQuery.ajax на сервер
  2. Если я хочу избежать выполнения (2), могу ли я установить Apache на сервере и серверную страницу с формой кода JS? Но тогда JS будет с 10.2.200.3, а сервер - 10.2.200.3:8001. Разве это не считается разными доменами в соответствии с политикой?

Спасибо!

+0

Я потратил час или около того, пытаясь понять это в прошлом году, и я не думаю, что у меня когда-нибудь был хороший ответ; Мне это не нужно, поэтому я сдался: I – Pointy

+0

Понятно, я тебя полностью понимаю! Я вытягиваю свои волосы, чтобы решить эту простую задачу JQuery в течение двух дней. – recipriversexclusion

ответ

2
  1. Да.

  2. Да, разные порты имеют различное происхождение. Это то, что большинство браузеров сделали в JS некоторое время, но оно явно описано в HTML5 draft, на которое ссылается XMLHttpRequest draft.

Если A и B имеют компоненты портов, которые не являются идентичными, возвращают ложь.

+0

Спасибо Бобинсу! Еще один вопрос: что бы вы предложили, должен ли я, чтобы мой сервер JBoss также обслуживал страницы с JS по 10.2.200.3:8001, или я должен пойти с широко используемым прокси-серверным решением. – recipriversexclusion

+0

Зависит от того, насколько я хочу, чтобы интеграция ваших веб-сервисов соответствовала сервису, независимо от того, хотите ли вы, чтобы они были частью одного проекта. В любом случае, я бы не хотел запускать сценарии разработки AJAX на сервер производства, если это так. – bobince

2

Если порт или адрес разные, это разные домены. Если вам нужно получить доступ к информации из того, что фактически является другим сервером, у вас действительно есть два варианта. Один из них - написать какой-то обратный прокси-сервер для передачи ваших запросов с одного и того же исходного сервера на вторичный сервер.

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

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