Загрузка XML из API - PullRequest
       4

Загрузка XML из API

0 голосов
/ 27 января 2011

Используя jQuery, я попытался загрузить файл определения из API Dictionary.com:

var tmpWord = "hello";    
jQuery.ajax({
            type: "GET",
            url: "http://api-pub.dictionary.com/v001?vid=<MYKEY>&q="+tmpWord+"&site=dictionary",
            dataType: ($.browser.msie) ? "text/xml" : "xml",
            success: function(xml) {
                console.log($(this).text());
            }
        });

(ПРИМЕЧАНИЕ: я заменил свой API-ключ на что-то нарочно, так что вы не должны его красть: P)

В любом случае, по какой-то причине это вернет результат в IE, но не в Firefox: '( и это то же самое, даже если я заставляю dataType: 'xml' Есть идеи, гуру?

Приветствие.

Neuro

Ответы [ 3 ]

3 голосов
/ 27 января 2011

Разве это не проблема междоменных сценариев?Это не разрешеноIE дает вам возможность переопределить настройки в зависимости от вашего уровня безопасности, однако Firefox не разрешает междоменные сценарии

Статья в Википедии: Межсайтовый скриптинг

Возможно яневерный контекст, но это мои 2 цента.

Кроме того, зачем вам это делать на клиенте, если кто-то может просто прочитать ваш ApiKey в источнике?

1 голос
/ 27 января 2011

Вы пытаетесь просто получить доступ к XML в виде текстовой строки?

Если это так, это должно сработать для объекта xml

string = new XMLSerializer().serializeToString( xml )
0 голосов
/ 30 января 2011

Хорошо, поэтому мне удалось отсортировать это с помощью следующего оператора:

window.dict_api_callbacks = function(theObj) {
        window.result = theObj.primaries[0].entries[1].terms[0].text;
    }

    $.getScript("http://www.google.com/dictionary/json?callback=dict_api_callbacks&q="+tmpWord+"&sl=en&tl=en&restrict=pr%2Cde&client=te", function() { 
    //code
});

... и затем вернуть window.result в качестве текста элемента.Я отказался от API Dictionary.com - он кажется грубым и неловким по сравнению с универсальным «неофициальным» API Google.

В любом случае, спасибо - у меня есть распределенные баллы.

N

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