从jQuery到REST API的AJAX PUT无法正常工作-错误404

时间:2019-05-16 16:04:38

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

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

data = []
while True:
    value = input("Enter a value (blank line to quit): ")
    try:
        data.append(float(value))
    except ValueError:
        break

data.sort()
  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
  }
})

这是怎么了?我还尝试为参数创建一个数组,并将其作为JSON字符串传递。我还尝试了以下网址,删除了userid参数:

[HttpPut]
public JsonResult PUT(int userId, DateTime paramDate1, int eventId1, DateTime paramDate2, int eventId2)
{
  var response = "";
  return Json(response, JsonRequestBehavior.AllowGet);
}

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

1 个答案:

答案 0 :(得分:1)

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

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