Проблема с простым вызовом JS XmlHttpRequest - PullRequest
0 голосов
/ 20 апреля 2010

Редактировать: Может быть, я сделал вопрос более сложным, чем следовало бы. У меня такие вопросы: как вы делаете API-вызовы на сервер из JS.

Мне нужно создать очень простой клиент, который выполняет вызовы GET и POST на наш сервер и анализирует возвращенный XML. Я пишу это на JavaScript, проблема в том, что я не знаю, как программировать на JS (начал изучать это только сегодня утром)!

В качестве начального теста я пытаюсь проверить связь с API Twitter, вот функция, которая вызывается, когда пользователь вводит URL http://api.twitter.com/1/users/lookup.xml и нажимает кнопку отправки:

function doRequest() {
    var req_url, req_type, body;
    req_url = document.getElementById('server_url').value;
    req_type = document.getElementById('request_type').value;   
    alert("Connecting to url: " + req_url + " with HTTP method: " + req_type);
    req = new XMLHttpRequest();
    req.open(req_type, req_url, false, "username", "passwd");// synchronous conn
    req.onreadystatechange=function() {
            if (req.readyState == 4) {
                    alert(req.status);
            }
    }
    req.send(null);
}

Когда я запускаю это на FF, я получаю

Доступ к ограниченному URI запрещен "код:" 1012

ошибка в Firebug. Материал, который я погуглил, предположил, что это была проблема, связанная с FF, поэтому я переключился на Chrome. Там появляется второе предупреждение, но в качестве кода состояния HTTP отображается 0, что мне показалось странным.

Может кто-нибудь определить, в чем проблема? Люди говорят, что этот материал проще использовать с JQuery, но узнав , что поверх синтаксиса JS сейчас слишком много.

1 Ответ

3 голосов
/ 20 апреля 2010

В целях безопасности нельзя использовать AJAX для запроса файла из другого домена.

Поскольку ваш Javascript не работает на http://api.twitter.com, он не может запрашивать файлы у http://api.twitter.com.

Вместо этого вы можете написать серверный код в своем домене, чтобы отправить вам файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...