提问人:Warda 提问时间:10/10/2023 更新时间:10/12/2023 访问量:55
ajax 中的防伪令牌 post 请求 ASP.NET MVC 抛出 500(内部服务器错误)
Antiforgerytoken in ajax post request ASP.NET MVC throwing 500 (Internal Server Error)
问:
我在使用 ajax 的 AntiForgeryToken 时遇到了问题。我正在使用 ASP.NET MVC 3。我在jQuery Ajax调用和Html.AntiForgeryToken()中尝试了该解决方案。使用该解决方案,令牌现在正在传递,但我总是得到 500(内部服务器错误),我尝试了很多解决方案,但在使用 [ValidateAntiForgeryToken] 时我无法达到其操作方法,
这是我的代码:
$("#headerNext").click(function () {
var form = $('#__AjaxAntiForgeryForm');
var token = $('input[name="__RequestVerificationToken"]', form).val();
$.ajax({
// context: this,
type: "POST",
url: "/Survey/LinkedSurveyAsJson",
data: "{__RequestVerificationToken: "+ token + " ,id:'@Model.CustomerSurveyId',lang:'@(Model.Language == "ar" ? "ar" : "en")'}",
//contentType: "application/json; charset=utf-8",
contentType: 'application/x-www-form-urlencoded; charset=utf-8',
success: function (response) {
if (response) {
var data = $.parseJSON(response);
$('#SurveyQuestions').html(templateQuestion(data));
console.log(data);
$('#headerText').hide();
$('#headerNext').hide();
$('#next').show();
}
},
error: function (response) {
showErrorMessage(response.Message);
document.getElementById(bid).disabled = false;
}
});
});
using (Html.BeginForm("Index", "Survey", FormMethod.Post, new { id = "__AjaxAntiForgeryForm", enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
}
[HttpPost]
[ValidateAntiForgeryToken]
public JsonResult LinkedSurveyAsJson(Guid? id, Guid? SurveyQuestionResponseId, Guid? LinkedSurveyQuestionId, Guid? SurveyQuestionId, Guid? SurveyId, string btnClicked, string ChoiceInputValue, string lang = "")
{
CustomerSurveyViewModel customerSurvey = null;
return Json();
}
答:
0赞
Warda
10/12/2023
#1
https://stackoverflow.com/a/30160504/6216322上面的链接对这个问题有正确的答案,它对我有用。
评论