gpt4 book ai didi

asp.net-mvc - 查询字符串中的 RequestVerificationToken

转载 作者:行者123 更新时间:2023-12-01 04:52:08 25 4
gpt4 key购买 nike

我对包含 @Html.AntiForgeryToken() 的表单执行的 ajax 帖子有问题。

当我通过 ajax 发布表单时,我得到以下查询字符串: http://myhost.local/Assessment/NextQuestion/15?__RequestVerificationToken=HVHkyjrwWupa9pU6tiMVjSDept5XeBtCyNL0tHwWEkfFDHJLXps9oRG7AlfvVHOx0tK0pE78KaQMD7gL5YBBXu_TfKhC3Pd69WaGCldFhPQhbP2t0

如何从查询字符串中删除它?执行标准发布时,查询字符串不包含此内容。

表格:

@using (Html.BeginForm("NextQuestion", "Assessment", FormMethod.Post, new { @class = "form-vertical"}))
{

@Html.AntiForgeryToken()
....
}

帖子功能:

$('form.ajaxForm').on('submit', (function() {
$("#loadingIndicator").show();
$.ajax(
{
type: "POST",
url: $('form.ajaxForm').attr("action"),
data: $('form.ajaxForm').serialize(),
success:
function(result) {
$("#loadingIndicator").hide();
if (result.redirect) {
window.location.href = result.redirect;
return;
} else {
alert(result.ValidationMessage());
}
},
error:
function(req, status, err) {
alert('error');
$("#loadingIndicator").hide();
},
});
return false;
}));

操作方法:

 [HttpPost]
[ValidateAntiForgeryToken]
public JsonResult NextQuestion(AssessmentModel model)

最佳答案

这被添加到查询字符串中,因为它是使用时的强制要求

[ValidateAntiForgeryToken]

@Html.AntiForgeryToken()

AntiForgeryToken 必须返回到服务器,以便可以对其进行适当验证,并且因为您正在执行

data: $('form.ajaxForm').serialize(),

并且 AntiForgeryToken 在您的表单中,它已正确序列化。

因此,如果您要使用 [ValidateAntiForgeryToken],这是必要的要求。

如果我错过了某些内容,而您想做的就是出于其他原因将其从查询字符串中删除,那么您需要以某种方式字符串处理调用的输出

$('form.ajaxForm').serialize()

我建议使用某种正则表达式来搜索 __RequestVerificationToken 和字符串的任一结尾,或者直到下一个查询字符串键值对的下一个 &/开始。

关于asp.net-mvc - 查询字符串中的 RequestVerificationToken,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18480575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com