Анализ XML-файла уровня национальной угрозы с помощью jQuery - PullRequest
0 голосов
/ 10 июля 2009

Я пытаюсь использовать jQuery для анализа уровня угрозы DHS, который у них есть в XML-файле , но я не могу заставить его работать. Я очень плохо знаком с Javascript и непрезентационным jQuery, поэтому я, вероятно, упускаю что-то очевидное.

Это файл XML:

<?xml version="1.0" encoding="UTF-8" ?> 
<THREAT_ADVISORY CONDITION="ELEVATED" /> 

Это Javascript, который я написал:

$(document).ready(function() {
    $.ajax({
        type     :  'GET',
        url      :  'http://www.dhs.gov/dhspublic/getAdvisoryCondition',
        dataType :  'xml',
        success  :  function parseThreatLevel(xml) {
                        var threatLevel = $(xml).find('threat_advisory').attr('condition');
                        $('#nationalThreatLevel').append(threatLevel);
                    }
    });
});

Ниже приведен HTML-код, который я пытаюсь использовать. Заранее спасибо за любую помощь или совет!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js'></script>
    <script type='text/javascript' src='lib/parseThreatLevel.js'></script>
        <title>National Threat Level</title>
    </head>
    <body>
        <div id='nationalThreatLevel'></div>
    </body>
</html>

Ответы [ 3 ]

4 голосов
/ 10 июля 2009

По соображениям безопасности у javascript нет доступа к другим доменам. Чтобы обойти это, вам нужно добавить скрипт на вашем сервере, который имеет доступ к другим доменам - часто называемый proxy .

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

Решения без SO:

Архив Stackoverflow:

4 голосов
/ 10 июля 2009

Весь ваш код верен, но проблема в том, что вы делаете междоменный запрос. Единственный способ, которым это будет работать с JavaScript / jQuery, - это найти поставщика JSONP . Ну, или вы пишете свой собственный сервер (PHP / ASP / ColdFusion / Something) для извлечения XML и предоставления локальной копии, чтобы иметь возможность извлекать XML с помощью JavaScript.

1 голос
/ 10 июля 2009

XML чувствителен к регистру, не так ли? Вы можете попробовать использовать THREAT_ADVISORY и CONDITION. То есть

var threatLevel = $(xml).find('THREAT_ADVISORY').attr('CONDITION');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...