2013-06-14 2 views
3

Я нажимаю на приложение PhoneGap, в котором есть HTML и Javascript для навигации по локальной сети, и он должен загружать конкуренцию из Интернета.Phonegap parse external HTML

У меня нет прямого контроля над содержимым сервера, поэтому я ничего не могу изменить.

Контент, который я хочу получить в своем приложении, основан на обычном веб-сайте HTML, поэтому я хочу получить, например, текст в da div или около того.

Что я до сих пор:

<script type="text/javascript"> 
    var url = "http://example.org/" 
    updateGadget(); 

    inervalID = setInterval("updateGadget();", 60 * 1000); 

    function updateGadget() { 
    $(document).ready(function() { 
     $.ajax(url, {}, function (response, status, xml) { 
      console.log(response); 
     }); 
    }); 
    } 
</script> 

Проблема в том, Тад он не работает, он не показывает мне ничего.

Для разработки используется веб-сервер, а не непосредственно PhoneGap. Когда я открываю веб-сайт в Google Chrome, он показывает ошибку:

XMLHttpRequest cannot load http://example.org Origin http://example.org is not allowed by Access-Control-Allow-Origin. 

в консоли.

Я нашел я должен использовать этот заголовок:

header('Access-Control-Allow-Origin: *'); 

Где я должен использовать его, если я положил его в HTML (PHP) файл в Топ не делает ничего в на сервере я хочу Парсе я не могу сказать.

Где проблема, и как можно, если исправить thad? Или есть лучший способ сделать это? Если возможно, я хочу использовать его непосредственно в приложении PhoneGap без защищенного сервера.

+1

Вы должны [белый список всех доменов, которые вы используете] (http://docs.phonegap.com/en/1.9.0/guide_whitelist_index.md.html) в вашем Приложение PhoneGap. – apsillers

+0

@пспиляторы в момент Момент я запускаю веб-сайт и веб-сервер для тестирования, а не на PhoneGap. Есть ли способ сделать это тогда? – user2436057

+1

Сайт, предлагающий страницу *, должен служить 'Access-Control-Allow-Origin: *'. Это способ для сервера сказать «да, я разрешу браузерам использовать эту страницу для перекрестного происхождения». Если вы не контролируете веб-сайт, у вас нет возможности сказать, могут ли браузеры использовать его в кросс-домене или нет. Возможно, вы можете попробовать использовать прокси, например http://whateverorigin.org/, или [отключить соблюдение браузером политики одного и того же происхождения] (http://stackoverflow.com/q/3102819/710446) (но обратите внимание, что это должно быть сделано во время тестирования * только * - небезопасно оставлять это отключенным во время обычного просмотра). – apsillers

ответ

1

У этого вопроса stackoverflow вопроса есть решение.

Основная идея заключается в том, чтобы сделать $.get запрос на http://whateverorigin.org/get?url=webpage-you-wish-to-scrap.com