【问题标题】:jQuery Post not working after upgrading to MVC5, but jQuery AJAX works fine升级到 MVC5 后 jQuery Post 无法正常工作,但 jQuery AJAX 工作正常
【发布时间】:2014-05-29 11:36:46
【问题描述】:

我正在尝试将项目从 .NET 4 和 MVC4 升级到 .NET 4.5 和 MVC5。除了我的 jQuery.post() 方法之外,我已经设法让一切正常。

我创建了一个简单的测试 API 控制器:

public class HomeApiController : ApiController
{
    [HttpPost]
    public string Test(TestObject test)
    {
        return test.name + "asdf";
    }
    public class TestObject
    {
        public string name;
    }
}

我正在尝试使以下 $.post() 工作。这正是我在 MVC4 中所做的,并且效果很好。

var data = { name: 'owen' };
$.post('/api/HomeApi/Test/', data)
.done(function (result) {
    console.log(result);
});

但名称总是以 null 出现,结果我只得到“asdf”。我也试过 JSON.stringify(data)。

但是,如果我像这样使用 $.ajax(),它可以正常工作,结果是“owenasdf”。

var data = { name: 'owen' };
$.ajax({
    url: "/api/HomeApi/Test/",
    type: "POST",
    data: JSON.stringify(data),
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    success: function (result) {
        console.log(result);
    },
    error: function () {
        alert("An error has occured!!!");
    }
});

我花了半天时间在 google 上查找,我只能找到 $.ajax() 的示例,我真的不想检查所有旧代码并更改 $.post()到 $.ajax()。 $.post() 简单多了!

谁能告诉我为什么 $.post() 不再工作?

更新

当我检查提琴手的帖子时,这些是不同的:

POST(使用 JSON.stringify() 并且不使用,结果相同)

Accept: */*
Content-Type: application/x-www-form-urlencoded; charset=UTF-8

AJAX

Accept: application/json, text/javascript, */*; q=0.01
Content-Type: application/json; charset=utf-8

【问题讨论】:

  • $.post() 是否发送正确的content-type 标头?你能用 Fiddler 检查帖子吗?
  • 在你字符串化的ajax中......帖子没有
  • @DavidG 我已经用提琴手结果更新了我的问题。
  • @tymeJV 我尝试过使用 stringify 和不使用(如问题中所述)。而且我从未在 MVC4 中使用过 JSON.stringify()。
  • 但是内容类型被发送为application/x-www-form-urlencoded而不是JSON

标签: c# jquery ajax asp.net-mvc asp.net-mvc-5


【解决方案1】:

在您的 TestObject 类中,您已将“name”声明为变量,它应该是 Property。

    public class TestObject
    {
        public string name { get; set; }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-14
    • 1970-01-01
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 2011-07-24
    相关资源
    最近更新 更多