【问题标题】:AJAX PUT from jQuery to REST API not working - Error 404从 jQuery 到 REST API 的 AJAX PUT 不起作用 - 错误 404
【发布时间】:2019-10-03 23:15:25
【问题描述】:

我正在尝试使用调用 .Net REST API 的 PUT 请求更新数据。当我发送 AJAX 调用时,它显示 404 错误。

  var url = "http://localhost/site/mycontrollerName/PUT"
  $.ajax({
    url: url,
    type: "PUT",
    contentType: 'application/json',
    dataType: "json",
    data: { 
      "userId": userid ,
      "paramDate1":date1 ,
      "eventId1": _event1 ,
      "paramDate2": date2 ,
      "eventId2": _event2 
    },
    success: function (data) {
      // some task
    }
  , fail: function () {
    // some task
  }
})
[HttpPut]
public JsonResult PUT(int userId, DateTime paramDate1, int eventId1, DateTime paramDate2, int eventId2)
{
  var response = "";
  return Json(response, JsonRequestBehavior.AllowGet);
}

这里有什么问题?我还尝试为参数创建一个数组并将它们作为 JSON 字符串传递。我还尝试了以下 URL,删除了 userid 参数:

http://localhost/site/mycontrollerName/1/PUT

http://localhost/site/mycontrollerName/PUT/1

【问题讨论】:

标签: jquery ajax asp.net-mvc http http-put


【解决方案1】:

这是IIS设置问题打开IIS->处理模块->搜索“ExtensionlessUrlHandler-Integrated-4.0”->点击“请求限制”->动词然后在里面添加PUT和DELETE。

使用 Javascript 对象更改 ajax 中的输入数据并在传递前对其进行字符串化。

【讨论】:

  • 很高兴您修复了它。顺便说一句,这是我给你的文章中的配置选项之一(关于现在移至聊天的 cmets),你说你已经实现了。你的 web.config 中的设置应该已经覆盖了 IIS 中的任何内容,所以这有点奇怪
  • 是的,它真的很奇怪。 IIS 具有覆盖配置设置。现在面临同样的删除请求问题,但这次 api 是 apicontroller 而不是 mvc
  • 也许您应该针对该问题提出一个单独的问题 - 因为它是 Web API,所以情况可能会有所不同。
猜你喜欢
  • 2017-08-25
  • 2013-07-13
  • 1970-01-01
  • 2011-08-16
  • 1970-01-01
  • 2011-12-30
  • 2022-11-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多