Trong dự án MVC3 của tôi, tôi có một bộ điều khiển có thuộc tính [Authorize]. Tôi có một biểu mẫu gửi mà không cần ajax, chuyển hướng người dùng (như mong đợi) đến màn hình đăng nhập, nếu anh ta/cô ấy không đăng nhập.mvc 3, jquery ajax & xác thực biểu mẫu
Tuy nhiên, bây giờ tôi có một biểu mẫu được gửi với jquery ajax và làm thế nào tôi có thể làm điều tương tự? Chuyển hướng người dùng đến màn hình đăng nhập, nếu người đó không được ủy quyền? Sau khi đăng nhập thành công, người dùng nên được chuyển hướng đến hành động ban đầu.
khiển
[Authorize]
[ValidateInput(false)]
public JsonResult SubmitChatMessage(string message)
{
if (!string.IsNullOrEmpty(message))
{
// Do stuff
}
// Return all chat messages
return GetChatMessages();
}
jQuery Khách hàng
$(document).ready(function() {
$("form[action$='SubmitChatMessage']").submit(function (event) {
$.ajax({
url: $(this).attr("action"),
type: "post",
dataType: "json",
data: $(this).serialize(),
success: function (response) {
// do stuff
}
});
return false;
});
});
tôi có thể nhìn thấy từ bảng điều khiển firebug cửa sổ, server đó trả về:
GET http://domain/Account/LogOn?ReturnUrl=%2fProductDetails%2fSubmitChatMessage
Mong sự giúp đỡ của bạn !
CẬP NHẬT với giải pháp khả thi
- The different solutions are outlined here
- Another variant of one of the solutions
- Tutorial which might give some inspiration
điểm của thông tin đăng nhập AJAX nếu bạn chỉ định chuyển hướng là gì? Tại sao không chỉ sử dụng một hình thức thông thường? – RPM1984
Vấn đề là, người dùng đã đăng nhập sẽ có thể gửi một số dữ liệu đến bộ điều khiển bằng ajax. Phải làm gì, nếu họ không đăng nhập? Làm thế nào để xử lý kịch bản đó với jquery ajax? – Nima
đúng, xấu của tôi - tôi đã hiểu lầm. Đã thêm câu trả lời. – RPM1984