我也得到了这个错误,但是为了改变我试图使用ajax提交表单。那时它会转到错误功能并获得响应 "所需的防伪表格字段" __ RequestVerificationToken"不存在。"
我尝试过不同的解决方案,在ajax标头中添加此标记值,以及要发布的formdata。但他们都没有工作。
请找到以下代码,单击注册模块中的新帐户时会执行该代码。
var form = $('#registerForm');
var dataObject = $('#registerForm').serializeObject();
var token = form.find('[name=__RequestVerificationToken]').val();
dataObject["__RequestVerificationToken"] = token;
var formData = JSON.stringify(dataObject);// store json string
var headers = {};
headers['__RequestVerificationToken'] = token
$.ajax({
type: 'POST',
url: 'Customer/Register',
headers: headers,
data: formData,
contentType: 'application/json',
dataType: "json",
success: function (data) {
alert("success=" + data);
},
error: function (data) {
alert("error=" + data);
}
});
尝试了我在stackoverflow或任何nopcommerce博客中找到的所有排列,但没有取得成功。如果您有解决方案将模型与此安全令牌一起发布,请尽快回复。
问候
答案 0 :(得分:1)
您可以按如下方式整理formData和防伪数据令牌:
function addAntiForgeryToken(data) {
//if the object is undefined, create a new one.
if (!data) {
data = {};
}
//add token
var tokenInput = $('input[name=__RequestVerificationToken]');
if (tokenInput.length) {
data.__RequestVerificationToken = tokenInput.val();
}
return data;
};
首先在" $。ajax({" line
addAntiForgeryToken(yourFormData);