Мобильный AJAX-запрос Jquery к внешним данным JSON не выполняется - PullRequest
0 голосов
/ 13 марта 2012

Я пытаюсь разработать мобильное приложение, используя JQUERY mobile. Для его данных моему приложению необходим доступ к существующей службе, которая возвращает объект JSON.

    $.ajax({
            url: 'http://pruebanico.comze.com/prueba2.json',     
            dataType: 'text',    
            jsonp: 'jsoncallback', 
            timeout: 5000,     
            success: function(json, status){

            alert (json);
            });

При выполнении этого фрагмента кода отображается неопределенная ошибка.

Если присмотреться к результату возвращенной страницы в Firebug, кажется, что все в порядке с точки зрения json

 {"totalResultsCount":0,"geonames":[]}

В чем может быть проблема неопределенной ошибки?

1 Ответ

1 голос
/ 15 марта 2012

Первая проблема заключается в том, что у вас есть синтаксическая ошибка.Вы не закрыли столько скобок / скобок, сколько открыли.Должно быть так:

$.ajax({
    url: 'http://pruebanico.comze.com/prueba2.json',
    dataType: 'text',
    jsonp: 'jsoncallback',
    timeout: 5000,
    success: function(json, status) {
        alert(json);
    }
});​

Вторая проблема заключается в том, что ваш сервер возвращает не JSONP, а просто JSON, что приводит к исключению из разных источников.

Вам нужно исправить свой серверный код, чтобы вместо этого возвращать что-то вроде

jsoncallback({"totalResultsCount":0,"geonames":[]})

ИЛИ

Реализовать CORS (совместное использование ресурсов из разных источников) на вашем сервере, нообратите внимание, что текущие выпуски Opera и Internet Explorer пока не поддерживают стандартную версию CORS.(IE имеет свой собственный объект XDomainRequest, но он отличается от стандарта CORS. Однако в следующей версии обоих браузеров будет поддерживаться стандартная поддержка CORS.)

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