我的问题是:
我正在做一个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"/>