var users = m.request({
method: "GET",
url: "hoge.json",
unwrapSuccess: function(response) {
return response;
},
unwrapError: function(response) {
//return response.error;
return "404 error";
}
});
users.then(function(result) {
console.log(result);
});
删除" hoge.json"。
我想抓住" 404错误"但是
uncaught SyntaxError:意外的标记<
2016/2/18添加
我想测试警报(" unwrapError");
以下代码始终是警报(" unwrapSuccess");
如何更改以下代码?
什么是unwrapError?
▼JS
var users = m.request({
method: "GET",
url: "hoge.json",
unwrapSuccess: function(response) {
alert ("unwrapSuccess");
return response;
},
unwrapError: function(response) {
alert ("unwrapError");
return "error";
}
});
users.then(function(result) {
console.log(result);
});
▼hoge.json
[{"name": "John"}, {"name": "Mary"}]
答案 0 :(得分:0)
如果您查看mithril's source code,您会发现m.request
只是XMLHttpRequest
API的包装器。这就是请求的readyState
属性发生变化时发生的情况:
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
if (xhr.status >= 200 && xhr.status < 300) {
options.onload({type: "load", target: xhr})
} else {
options.onerror({type: "error", target: xhr})
}
}
}
只要响应状态不是2xx,就会调用mithril的unwrapError
回调。
我updated the fiddle calling a URL that returns a 500 response现在调用unwrapError
。