AJAX调用Handler失败的POST,但工作的GET



我的问题是:

我正在做一个Ajax调用处理程序。这工作,如果我做一个GET,但如果我做一个POST,我得到网络错误404未找到。这怎么可能?

  var jsondata = { zip: myzip, country: mycountry }; // this contains data
  $.ajax({
    url: "/upstracker/timeintransit/",
    data: jsondata,
    dataType: "json",
    type: "POST",  // This fails - giving 404 error.
    // type: "GET", // This works
    async: false,
    success: function (data) {
        console.log(data);
    },
    error: function (jqXHR, textStatus, errorThrown) {
         console.log(jqXHR);
    } 
});
<<p> 处理程序/strong>:
  Public Sub ProcessRequest(context As HttpContext) Implements IHttpHandler.ProcessRequest
     // All logic to create data - ServicesEstimatedDatelist Contains List of required data
      Dim jSearializer As System.Web.Script.Serialization.JavaScriptSerializer = New System.Web.Script.Serialization.JavaScriptSerializer()
    context.Response.ContentType = "application/json"
    context.Response.ContentEncoding = Encoding.UTF8
    context.Response.Write(jSearializer.Serialize(ServicesEstimatedDatelist))
End Sub

处理程序的重写链接,在重写规则文件中设置,它正在工作。

所以我不能做POST的原因是:

在webconfig中为Handler添加重写规则时,我将其限制为GET:

的例子:

<add name="UPSTime_in_Transit_tracker" verb="GET" path="/upstracker/timeintransit" type="NameOfHandler"/>

<add name="UPSTime_in_Transit_tracker" verb="*" path="/upstracker/timeintransit" type="NameOfHandler"/>

最新更新