我有一个 Dart 客户端和一个 Java 后端。我正在尝试在我的应用程序周围添加安全性,因此 Java 服务器要求用户在访问数据之前进行身份验证。如果 Web 服务调用进入并且用户未通过身份验证,则后端服务将带有 HttpResponseCode (401) 的重定向发送回客户端调用。我现在有了它,客户端可以解析 request.status 并看到 401 但它不处理重定向。
飞镖代码
HttpRequest request=new HttpRequest();
request.onReadyStateChange.listen((_) {
if (request.readyState == HttpRequest.DONE &&
(request.status == 200 || request.status == 0)) {
onHistoryLoaded(request.responseText);
}
});
request.open("GET", url);
request.send();
request.onLoadEnd.listen((e) => processRequest(request));
request.onError.listen((Object error)=>handleError(error));
void processRequest(HttpRequest request) {
var status = request.status;
print("status $status"); //401
}
void handleTheError(Error e){
print("handleTheError Request error: $e");
}
Java 服务器
//Tried both of these
// response.setStatus(HttpStatusCodes.STATUS_CODE_UNAUTHORIZED);
// response.sendRedirect(LOGIN_PAGE);
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
response.setHeader("Location", LOGIN_PAGE);
任何建议都会很棒。谢谢