2014-02-03 2 views
1

Я немного в недоумении относительно того, как запрос веб-сервиса, отдохнем http://www.nlm.nih.gov/medlineplus/webservices.html Вот скрипку того, что я в настоящее время: http://jsfiddle.net/mjtaljaard/jnjk4/ Но это ничего не возвращает. Кто-то упомянул, что у меня проблема с сценарием на разных сайтах? Какие-либо предложения?Потребляя XML остальные веб-службы

function DoSearch() { 


    var searchVal = $('#searchString').val(); 
    alert('called ' + searchVal); 
    var url = "http://wsearch.nlm.nih.gov/ws/query?db=healthTopics&term="+searchVal; 
    $.get(url, function(data) { 
     $("#resultsDiv").html(data); 
     alert("Load was performed."); 
    }); 
} 
+0

Вы когда-нибудь это выясняли? –

ответ

0

Мой проект был в Phonegap, а межсайтовый скриптинг не является проблемой для телефонной связи. Поэтому, как только я загрузил его на свое устройство, все сработало нормально.

2

Код клиента-клиента не может напрямую запрашивать данные с другого веб-сайта напрямую. Это называется same-origin policy. Это помогает защитить пользователей от cross-site scripting attacks.

Глядя на the description of that web service, нет упоминания о CORS (cross-origin resource sharing) или JSONP, которые являются общими способами расслабления той же политики происхождения.

Ваше лучшее решение, вероятно, состоит в том, чтобы позвонить вашему собственному серверному коду (это нормально, если он имеет тот же протокол и хост, что и веб-страница), и иметь код вашей серверной системы GET. Затем вы можете либо вернуть всю полезную нагрузку из GET на вызывающую веб-страницу, либо изменить ответ и вернуть только нужные вам данные.

+0

Привет Майк. Я только что нашел: http://apps2.nlm.nih.gov/medlineplus/services/servicedemo.cfm Кажется, они поддерживают jsonp, но у меня SOOOO не знаю, как это сделать. Какие хорошие учебники вы знаете? – user2110655

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