Nếu bạn cần điều này chỉ để nhận ra khi người dùng không được xác thực, bạn có thể muốn cân nhắc thực hiện một việc khác. Giống như thêm trình xử lý vào Ajax singleton:
function addAjaxErrorHandler(object) {
Ext.Ajax.on('requestexception', function(conn, response, options, e) {
var statusCode = response.status,
errorText = null,
captionText = response.statusText;
// 404 - file or method not found - special case
if (statusCode == 404) {
Ext.MessageBox.alert('Error 404', 'URL ' + response.request.options.url + ' not found');
return;
}
if (response.responseText != undefined) {
var r = Ext.decode(response.responseText, true);
if (r != null) {
// 401 - not authenticated. For some reason we don't have authentication cookie anymore
if (r.ErrorCode == 401) {
Ext.MessageBox.alert('Error', 'You must log in to use application',
function() {
// do something when user is not authenticated
object);
return;
}
errorText = r.ErrorMessage;
}
if (errorText == null)
errorText = response.responseText;
}
if (!captionText)
captionText = 'Error ' + statusCode;
Ext.MessageBox.alert(captionText, errorText);
},
object);
}
Sau đó, chỉ cần gọi hàm này từ hàm application.launch() của bạn và chuyển đối tượng ứng dụng để phạm vi nếu được xác định.
Tại sao bạn muốn ghi đè Kết nối để hiển thị chính xác biểu mẫu đăng nhập? để trình bày người dùng với biểu mẫu đăng nhập nếu anh ta không được xác thực? – sha
Chính xác. Và cũng có thể nếu phiên thời gian ra ngoài. –
Tôi đã thêm trình xử lý toàn cầu cho các lỗi Ajax và phân tích các lỗi không được xác thực ở đó. Có lẽ đó là một cái gì đó mà sẽ phù hợp với bạn quá. – sha