2013-04-02 2 views
1

Имя моего веб-сервера: mybox.ourcorp.ourdomain.com. Из него я пытаюсь сделать вызов json на другой сервер в том же поддомене - http://otherbox.ourcorp.ourdomain.com/feed

Если я открываю браузер на своем веб-сервере и вставляю этот URL-адрес, я возвращаю данные json, никаких проблем. но положить его в $.getJSON() я не получаю возвращаемое значение:

 $.getJSON('http://otherbox.ourcorp.ourdomain.com/feed', function (json) { 
       storeDataFeed(json); //<----json is null 
     }); 

Является ли это проблемой политики общего происхождения? Я бы так не думал, поскольку они находятся в одном и том же субдомене?

Если да, то otherbox должен быть каким-то образом настроен на работу с jsonp, чтобы я мог пройти этот маршрут?

Есть ли способ узнать, почему этот звонок .getJSON возвращает null? В консоли браузера нет сообщений.

+0

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

+1

да, у вас такая же проблема с началом – lngs

ответ

1

Да, разные субдомены будут считаться междоменным запросом (http://en.wikipedia.org/wiki/Same_origin_policy#Origin_determination_rules).

Но, вы должны быть в состоянии использовать $ .ajax с DATATYPE: «JSONP»:

$.ajax({ 
dataType: "jsonp", 
url: "http://otherbox.ourcorp.ourdomain.com/feed", 
success:function(json) { 
    storeDataFeed(json); //<----json is null 
} 
}); 
+0

Спасибо. Знаете ли вы, что сервер, который кормит json, нуждается в дополнительной настройке для предоставления данных таким образом? – larryq

+1

вам понадобится несколько дополнительных настроек для поддержки jsonp – lngs

+1

Нет, я так не думаю. «JSONP» просто изменит запрос, заставив его появиться на сервере в качестве запроса от тега скрипта. – ZimSystem

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