Tôi gặp sự cố với AntiForgeryToken với ajax. Tôi đang sử dụng ASP.NET MVC 3. Tôi đã thử giải pháp trong các cuộc gọi jQuery Ajax và Html.AntiForgeryToken () . Sử dụng giải pháp đó, mã thông báo hiện đang được thông qua:
var data = { ... } // with token, key is '__RequestVerificationToken'
$.ajax({
type: "POST",
data: data,
datatype: "json",
traditional: true,
contentType: "application/json; charset=utf-8",
url: myURL,
success: function (response) {
...
},
error: function (response) {
...
}
});
Khi tôi xóa [ValidateAntiForgeryToken]
thuộc tính chỉ để xem liệu dữ liệu (có mã thông báo) có được truyền dưới dạng tham số cho bộ điều khiển hay không, tôi có thể thấy rằng chúng đang được truyền. Nhưng vì một số lý do, A required anti-forgery token was not supplied or was invalid.
thông báo vẫn bật lên khi tôi đặt lại thuộc tính.
Có ý kiến gì không?
BIÊN TẬP
Antiforgerytoken đang được tạo trong một biểu mẫu, nhưng tôi không sử dụng hành động gửi để gửi nó. Thay vào đó, tôi chỉ nhận được giá trị của mã thông báo bằng cách sử dụng jquery và sau đó cố gắng đăng bài đó.
Đây là biểu mẫu có chứa mã thông báo và được đặt ở trang chính trên cùng:
<form id="__AjaxAntiForgeryForm" action="#" method="post">
@Html.AntiForgeryToken()
</form>