Я пытаюсь подключить script к Microsoft World-Wide Telescope. Последний прослушивает порт 5050 для команд. Он работает на той же машине, что и браузер (сейчас Chrome, но насколько я могу сказать, что поведение одинаково с Firefox 7 и IE 9).
Я отправляю заголовок "Access-Control-Allow-Origin: *" с исходным html файлом, чтобы попытаться устранить ограничения XSS в качестве моей проблемы.
Мой код для доступа к WWT выглядит следующим образом:
$.ajax({
type: 'POST',
url: url,
data: data,
crossDomain: true,
success: success,
dataType: dataType
});
url в этом случае является "http://127.0.0.1: 5050/layerApi.aspx? cmd = new &..." (очевидно... здесь приведены некоторые дополнительные параметры).
Глядя на диагностику сети в Chrome, я вижу это:
Request URL:http://127.0.0.1:5050/layerApi.aspx?cmd=new&...
Request Headersview source
Accept:application/xml, text/xml, */*; q=0.01
Content-Type:application/x-www-form-urlencoded
Origin:http://gwheeler4
Referer:http://gwheeler4/conceptconnect.html
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1
Запрос выходит - я вижу, что WWT создает новый слой. Однако, я не получаю обратный вызов. Если я добавлю обратный вызов ошибки, который вызывается, но свойство ошибки на объекте jqXHR является просто "ошибкой", а статус равен 0. Если я посмотрю на сетевой запрос в Chrome, я вижу "(отменен)" как статус и отсутствие ответа.
Если я беру тот же URL-адрес и вставляю его в новую вкладку браузера, я вижу, что ответ представляет собой ожидаемый XML.
Конечно, разница в том, что это GET не POST, но я пробовал это в своем script, и это не имеет никакого значения.
Я очень взволнован этим и буду признателен за любые свежие идеи.