JSONP-запрос MooTools не работает с неверным паролем - PullRequest
0 голосов
/ 09 января 2010

Я делаю запрос JSONP, используя MooTools:

var username = 'hsz';
var password = 'pass';
var req = new Request.JSONP({
    url: 'http://api.blip.pl/profile.json',
    method: 'get',
    headers: {
        'Authorization' : 'Basic ' + Base64.encode(username + ':' + password),
        'Accept'        : 'application/json',
        'Content-Type'  : 'application/json',
        'X-blip-api'    : '0.02'
    },
    onSuccess: function(res){ alert('success'); },
    onFailure: function(res){ alert('failure'); }
}).send();

С действительным логином и паролем он работает нормально (предупреждает меня success).
Когда я изменяю password на недопустимое значение, он ничего не делает.
Я не знаю, почему он ведет себя плохо.
То же самое, когда я использую Request.JSON(). Есть идеи?

Ответы [ 3 ]

0 голосов
/ 09 января 2010

Я думаю, onFailure - это просто событие, инициируемое классом Request при сбое в запросе XHR. если вам не удастся пройти аутентификацию, это не будет означать, что он не запустил экземпляр запроса, а просто не смог получить ожидаемые результаты.

в 1.2.4.x, request.jsonp поддерживает необязательный журнал (реализован журнал класса оболочки консоли) - добавьте log: true к параметрам класса и посмотрите, какие события он пытается вызвать в firebug.

также вы можете изменить обработчик на onComplete и интерполировать возвращенный json, чтобы определить, насколько успешно он был основан на данных (в отличие от onSuccess )

0 голосов
/ 19 апреля 2013

В классе JSONP есть свойство тайм-аута. По умолчанию установлено значение 0, и onFailure не был запущен.

Я установил тайм-аут: 1, и теперь onFailure срабатывает.

0 голосов
/ 09 января 2010

Может быть, служба не отвечает ни на что, поэтому она не может аутентифицировать / авторизовать запрос, чтобы оставить любого хакера, если пароль или идентификатор пользователя или оба неверны!

...