2013-05-23 3 views
0
<script> 
    (function(){ 
     var searchURL = 'http://en.wiktionary.org/wiki/search'; 
     $.ajax({ 
       type: "GET", 
       url: searchURL, 
       dataType: "jsonp", 
       cache: false, 
       async:false, 
       success: function(responseData, textStatus, XMLHttpRequest){ 
         iframe(responseData); 
        } 
      }); 
    })(); 
    </script> 

Я добавил этот скрипт в мой HTML файл, и это показывают следующие ошибки, скопируйте вставив функцию в консоли также демонстрирует одни и те же ошибки.Uncaught ошибка синтаксиса: Неожиданный токен <, Ajax вызова

Uncaught SyntaxError: Unexpected token < 
Resource interpreted as Script but transferred with MIME type text/html 

Может кто-нибудь помочь мне решить эту проблему, я использую Chrome brower.

+6

Вы запрашиваете 'jsonp', но получаете HTML. 'Jsonp' - не волшебное решение, позволяющее получать любые данные из любого домена. Ответ должен быть ответом 'jsonp'. –

+3

http://en.wiktionary.org/wiki/search не отображает данные в формате JSONP. Это всего лишь HTML-страница. Поэтому, пытаясь разобрать HTML как JSON, вы получаете ошибку, потому что первый символ - это <. Что вы пытаетесь достичь? – jraede

+0

Есть ли альтернативный способ получения данных из wiktionary с помощью js – Pradyumna

ответ

3

Вы не можете запрашивать произвольные страницы через AJAX, и jsonp не волшебным образом делает эту работу. Вам необходимо использовать Wiktionary API.

Адрес: http://en.wiktionary.org/w/api.php.

$.ajax({ 
    url: 'http://en.wiktionary.org/w/api.php', 
    dataType: 'jsonp', // will automatically add "?callback=jqueryXXX" 
    cache: true, // the API complains about the extra parameter 
    data: { // the parameters to add to the request 
     format: 'json', 
     action: 'query', 
     titles: 'test' 
    }, 
    success: function(data){ 
     console.log(data); 
    } 
}); 
Смежные вопросы