我有一个aspx文件,我想在Ajax的同一页面中请求WebMethod。但是我得到了一些错误(你可以在下面看到)实际上这个代码在更改我的服务器之前有效。
服务器配置
这是我在“Page.aspx”中的Webmethod代码
[WebMethod]
public static string deleteOpenedSegment(decimal segmentID)
{
bool success = Helper.DeleteSegment(segmentID);
if (success)
{
return "true";
}
else
{
return "false";
}
}
这是我在Page.aspx中的Javascript方法
jQuery.ajax({
url: 'Page.aspx/deleteOpenedSegment',
type: "POST",
data: "{'segmentID':" + getSelectedSegment().attr('id') + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert("okey");
}
});
这也是关于谷歌Chrome Web Developer Tool请求的捕获
错误记录
用于访问路径的HTTP谓词POST 不允许'/\ n = Page.aspx/deleteOpenedSegment'
System.Web.HttpException不允许使用用于访问路径'/......./Page.aspx/deleteOpenedSegment'的HTTP谓词POST。
System.Web.HttpException(0x80004005):不允许用于访问路径'/......./Page.aspx/getSegmentHistory'的HTTP谓词POST。
在System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext上下文,AsyncCallback回调,对象状态) 在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)
提前感谢您的任何帮助或建议!
答案 0 :(得分:0)
我已经解决了这个问题。其实我没有意识到但问题是固定的。问题解决后我做了Windows更新:) 下面显示的更新可能有助于其他程序员。
答案 1 :(得分:0)
最近我也使用这种类型的代码,我可以毫无问题地删除我的项目,请参阅我的代码
[System.Web.Services.WebMethod()]
public static string DeleteCartItem(string catId)
{
Customer thisCustomer = Customer.Current;
var cart = new ShoppingCart(thisCustomer.SkinID, thisCustomer, CartTypeEnum.ShoppingCart, 0, false);
cart.RemoveItem(Convert.ToInt32(catId), false);
var path = System.Web.HttpContext.Current.Server.MapPath("22-02-2014__000865.jpg");
File.Delete(path);
return cart.TotalQuantity().ToString();
}