我用这种方式设置了一个全局AJAX错误处理函数,但我不知道如何测试它?无论如何在jsFiddle 中
$(function () {
var statusErrorMap = {
'400' : "Server understood the request, but request content was invalid.",
'401' : "Unauthorized access.",
'403' : "Forbidden resource can't be accessed.",
'500' : "Internal server error.",
'503' : "Service unavailable."
};
//setup ajax error handling
$.ajaxSetup({
error: function (x, status, error) {
if (x.status in statusErrorMap) {
if (x.status == "503") {
alert("Sorry, your session has expired. Please login again to continue");
window.location.href ="/users/sign_in";
} else {
alert("("+ x.status +") error occurred: " + statusErrorMap[x.status.toString()]);
}
}
else {
alert("An error occurred: " + status + "nError: " + error);
}
}
});
});
您必须使用fiddler(代理工具)来拦截服务器请求并测试错误处理代码。为此,您必须在fiddler中为您的服务调用设置一个断点,并按照以下过程进行操作。
- 规则>自动断点>响应后
- 在quickexec框(底部的黑框)中,键入"bpafter-yourpage.svc"。现在,Fiddler将在所有对包含"yourpage.svc"的URL的请求之前停止在断点处。键入不带参数的"bpafter"以清除断点
- 使用FiddlerScript以编程方式篡改响应。FiddlerScript的最佳文档在官方网站上:http://www.fiddler2.com/Fiddler/dev/
您可以在下面的stackoverflow中获得更多详细信息。
如何使用Fiddler修改HTTP响应中的状态代码?