Nopcommerce所需的防伪表格字段" __ RequestVerificationToken"不存在。"

时间:2015-12-21 15:59:52

标签: jquery nopcommerce antiforgerytoken

我也得到了这个错误,但是为了改变我试图使用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博客中找到的所有排列,但没有取得成功。如果您有解决方案将模型与此安全令牌一起发布,请尽快回复。

问候

1 个答案:

答案 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);