首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP 6 AJAX坏请求

ASP 6 AJAX坏请求
EN

Stack Overflow用户
提问于 2017-08-10 15:41:10
回答 1查看 239关注 0票数 1

我的意图是在用户提交数据时,在不完全重新加载当前页面的情况下更新数据库,而只是弹出一个消息框,表示成功或失败,或类似的情况。

我有下面的JS函数,当用户单击一个按钮时调用它。

代码语言:javascript
复制
function saveListItem(formID)
{
    alert('JS function fired.');
    var _form = $('#mainForm' + formID)
    var _formData = _form.serialize();

    $.ajax({
        dataType: "json",
        type: "POST",
        url: "/Postings/listItemSubmitted",
        contentType: "application/json; charset=utf-8",
        data: { type: "test" },
        success: function () {
            alert("success");
        },
        error: function (xhr, status, error)
        {
            alert(error.toString());
        }
    });
}

下面是控制器的操作:

代码语言:javascript
复制
[HttpPost]
[ValidateAntiForgeryToken]
public JsonResult listItemSubmitted([FromBody] string type)
{
    type += "!!!";
    return Json(type);
}

正如您所看到的,我有几个变量,稍后我打算使用这些变量来实际执行一些事情。但就目前而言,我只是想让这个测试起作用。问题是控制器中的动作甚至不会开火。错误警报给了我“坏请求”。

我检查了名称,所有名称都是正确的(控制器是PostingsController.cs,方法名是listItemSubmitted)。我试过URL语法中每一个斜杠在单词前后的组合。我甚至尝试过使用@Url.Action方法,它给了我这个字符串,所以我知道它是正确的。

我不知道还能尝试什么。有人知道这是怎么回事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-10 15:46:42

我认为您在控制器中使用的ValidateAntiForgeryToken作为过滤器存在一个问题。您必须将相关的输入值连同您的数据发送到服务器。试着移除这个过滤器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45618122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档