使用jquery AJAX的POST调用不起作用

时间:2017-01-14 11:30:40

标签: javascript c# jquery asp.net ajax

我正在尝试构建一个ASP.NET MVC Web服务,我正在尝试使用jQuery ajax在javascript中进行POST调用,如下所示。

$.ajax({
      url: "/bug/CreateBug",
      type: "POST",
      data: rowData,
      contentType: "application/json",
      datatype: "json", //return type
      success: function (data) {
          console.log(data);
      },
      error: function (xhr) {
          alert('error');
      }
  });

我一直收到错误TypeError: e is undefined。我尝试在此ajax调用之前添加一个日志语句,并且工作正常。不知道我错过了什么。我的rowData看起来像下面的内容。

{
    "Date": "2016-12-31",
    "Id": "1234-csj4-sadf-random",
    "Scenario": "abc",
    "IsFixed": "No"
}

控制器中的我的C#代码看起来像这样

[HttpPost]
public JsonResult CreateBug(string jsonRequest)
{
    var bugId = GetBugId(jsonRequest);

    return this.Json(bugId, JsonRequestBehavior.AllowGet);
}

我尝试使用Postman测试上述POST调用,并jsonRequestnull。有人可以帮我解决一下如何让POST请求工作吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

  try it hope it works
  $.ajax({
  url: "/bug/CreateBug",
  type: "POST",
  data: JSON.stringify(rowdata),
  contentType: "application/json",
  datatype: "json", //return type
  success: function (data) {
      console.log(data);
  },
  error: function (xhr) {
      alert('error');
  }
  });

------在控制器上   做这样的事情或最好的方法是创建具有所有这些属性的模型,MVC将为您绑定它。

    [HttpPost]
   public JsonResult CreateBug(string Id, string Date, string IsFixed ,   string Scenario)
 {
    var bugId = GetBugId(jsonRequest);

   return this.Json(bugId, JsonRequestBehavior.AllowGet);
}