MithrilJS:如何使用 m.request() 获得 XHR.status 错误和成功数据
MithrilJS: How to get XHR.status on error and data on success with m.request()
我需要使用 m.request
接收 http 状态错误,所以我根据文档使用 extract
。但由于某种原因,它弄乱了我的数据 return。
根据文档,如果我使用 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);
});
}
};
这里的错误和数据都给我状态码。我需要获取成功的传入数据来设置我的身份验证。
谢谢。
好的。我想到了。我愚蠢到错过了我自己发布的文档片段中的条件。我认为 extract
returns 在出现错误的情况下,但它在这两种情况下都是 returns,你需要在提取定义中自己决定是 return 状态代码还是响应体。知道了
我需要使用 m.request
接收 http 状态错误,所以我根据文档使用 extract
。但由于某种原因,它弄乱了我的数据 return。
根据文档,如果我使用 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);
});
}
};
这里的错误和数据都给我状态码。我需要获取成功的传入数据来设置我的身份验证。
谢谢。
好的。我想到了。我愚蠢到错过了我自己发布的文档片段中的条件。我认为 extract
returns 在出现错误的情况下,但它在这两种情况下都是 returns,你需要在提取定义中自己决定是 return 状态代码还是响应体。知道了