我正在使用围绕jQuery的AJAX函数的包装器函数,如下所示:
$.getAjax = function(url, type, callback){
$.ajax({
url: url,
cache: false,
dataType: type,
success: function(){
alert("success");
},
complete: function(XMLHttpRequest, textStatus){
alert("complete");
if (callback != undefined) {
callback();
}
},
error: function (XMLHttpRequest, textStatus, errorThrown){
alert("error");
}
});
}
Run Code Online (Sandbox Code Playgroud)
当我使用"text"作为dataType时,即使url无效,它也能正常工作.当url无效时,它首先调用错误然后调用complete函数.没关系.但是当我使用"script"作为dataType时,当url无效时它不会调用任何东西.当我使用"script"作为dataType时,我该怎么做才能捕获HTTP 404错误?
我想在我的网络应用中处理HTML 404错误.
我可以这样写:
<error-page>
<error-code>404</error-code>
<location>/view/error404.jsp</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)
这很好用,但我想记录用户输入的每个无效网址.当我在error404.jsp中使用scriptlet时,如下所示:
<%
System.out.println(request.getRequestURL());
%>
Run Code Online (Sandbox Code Playgroud)
我总是得到:http:// localhost:8080/webApp/view/error.jsp,因为用户将从无效的URL转发到我的error404.jsp.
我该如何获取无效的网址?或者我应该如何编写一个servlet来捕获其他servlet未明确处理的所有请求?