簡體   English   中英

Nopcommerce不存在必需的反偽造表單字段“ __RequestVerificationToken”。”

[英]Nopcommerce The required anti-forgery form field “__RequestVerificationToken” is not present."

M也收到此錯誤,但是為了進行更改,我嘗試使用ajax提交表單。 那時它進入錯誤功能並得到響應,因為“不存在必需的反偽造表單字段“ __RequestVerificationToken”。”

我嘗試了不同的解決方案,以便將此標記值與要發布的formdata一起添加到ajax標頭中。 但是他們都不起作用。

請找到以下代碼,當在注冊模塊中單擊“新帳戶”時,將執行該代碼。

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博客中發現的所有排列,但未成功。 如果您有解決方案將模型與該安全令牌一起發布,請與任何人聯系,請盡早答復。

問候

您可以按以下方式整理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({”行之前,先調用以下函數

addAntiForgeryToken(yourFormData);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM