2015-07-15 5 views
2

Мне нужно получить ошибки статуса http с m.request, поэтому я использую extract согласно документации. Но по какой-то причине это портит мои данные.MithrilJS: Как получить XHR.status по ошибке и данные об успехе с m.request()

Согласно документам, если я использую extract для получения статуса, то extract return передается как параметр обратного вызова ошибки, и данные передаются на обратный вызов успеха. Вот фрагмент документов.

var nonJsonErrors = function(xhr) { 
    return xhr.status > 200 ? JSON.stringify(xhr.responseText) : xhr.responseText 
} 

m.request({method: "GET", url: "/foo/bar.x", extract: nonJsonErrors}) 
    .then(function(data) {}, function(error) {console.log(error)}) 

Теперь я получаю статус как для успешных, так и для обратных вызовов ошибок, что неверно. Мне нужно получить статус ошибки и данные об успехе. Как мне это сделать? Что я делаю не так? Вот мой код:

var Application = { 
    run() { 
    m.request({ 
     method: "GET", 
     url: "http://localhost:3000/api/session/ping", 
     extract(xhr) {return xhr.status;} 
    }).then((data) => { 
     console.log("Session is Up"); 
     console.log(data); 
     var init = { 
     uname: data.uname 
     }; 
     router(init); 
    }, (error) => { 
     console.log(`Cought: ${error}`); 
     m.mount(document.body, Login); 
    }); 
    } 
}; 

И ошибки, и данные здесь дают мне коды статуса. Мне нужно получить входящие данные об успехе, чтобы настроить мою аутентификацию.

Спасибо.

ответ

2

OK. Я понял. Я был достаточно глуп, чтобы пропустить условное в фрагменте документов, который я разместил сам. Я думал, что extract вернется в случае ошибки, но он возвращается в обеих ситуациях, и вам нужно решить, в определении извлечения, о том, есть ли код статуса возврата или тело ответа. Понял.

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

  • Нет связанных вопросов^_^