2012-04-16 2 views
1

См. Приведенный ниже код. Я пытаюсь обработать ошибку, которая возвращается вызовом twitter api. Помните, что Jquery не обрабатывает типы данных jsonp и, следовательно, тайм-аут, приведенный ниже код, очевидно, выдает ошибку для несуществующего идентификатора Twitter. Я хочу поймать эту ошибку в моем методе req.error и показать ее пользователю. Но, по-видимому, ошибка скрыта и приходит к console.log («Oh noes!» + Msg.error); Это, безусловно, связано с данными jquery, обрабатывающими jquery. Кто-нибудь сталкивался с тем же? Любые решения?jQuery не правильно обрабатывает данные jsonp из twitter api call

function findUserInfo(){ 


    var req = $.ajax({ 

    url: "https://twitter.com/users/show.json?id=neverexistID", 
    dataType : "jsonp", 
    timeout : 10000 

    }); 

    req.success(function(msg) { 
     console.log('Yes! Success!'+msg); 

    }); 

    req.error(function(msg) { 
     console.log('Oh noes!'+msg.error); 
    }); 


      } 

Ответ: JSONP звонки являются особенными и ошибки, возникающие, как правило, скрыты, и вот почему я не мог справиться с ситуацией ошибки, ниже плагин обрабатывает ситуацию хорошо и решить мою проблему.

jsonp plugin code.google.com/p/jquery-jsonp

+0

JQuery, похоже, не справляется с этим, и я использовал плагин jsonp для решения проблемы с «ошибкой скрытия» здесь является ссылкой плагина http://code.google.com/p/jquery-jsonp – cherit

ответ

2

Существует обходной путь для вашей проблемы, изменить свой адрес вызов:

url: "https://twitter.com/users/show.json?suppress_response_codes&id=neverexistID", 

От Twitter documentation

suppress_response_codes: Если этот параметр присутствует, все ответы будут возвращены с статусом 200 OK s - даже ошибки. Этот параметр существует для размещения приложений Flash и JavaScript , работающих в браузерах, которые перехватывают все ответы, отличные от 200. Если используется, , то это задание клиента для определения состояний ошибок путем разбора тела ответа. Следует использовать с осторожностью, так как эти сообщения об ошибках могут изменить.

Смежные вопросы