我有以下jQuery发布到ASP.NET webmethod:

$.ajax({

type: "POST",url: "AjaxWebMethods.aspx/UpdNote",contentType: "application/json; charset=utf-8",data: "{'ID' : '" + id + "','note' : '" + note + "' }",dataType: "json",success: UpdNote_Success,error: AjaxError

});

Web方法被声明:

[System.Web.Services.WebMethod(enableSession: true)]

public static int UpdNote(int ID,string note) {

// business logic that eventually returns a number,but simplifying

// ... for the sake of brevity

int retNum = 99;

return retNum;

}

jQuery文章和Web方法在Windows Authenticated环境中都很好用(即 – 用户通过LDAP进行身份验证).然而,我最近不得不将该网站移动到使用RSA(双因素身份验证,引脚和令牌代码)的服务器,以验证用户以访问该网站.我现在看到的是,我所有的jQuery帖子都返回“405错误”.

显然,跨站点的请求,但是这里没有一个.所有jQuery AJAX帖子都使用在AjaxWebMethods.aspx中声明的Web方法,该页面驻留在站点自己的域中.

提前感谢任何帮助或建议!

编辑:

在IE8中使用Fiddler给我一些更多的信息.它返回的错误代码仍然是405,但服务器错误更具描述性.服务器错误是“不允许用于访问路径的HTTP动词POST”/AjaxWebMethods.aspx/UpdNote“.

我确实尝试将ajax请求的type参数更改为GET,但是我得到一个404(不能找到该资源).

另外,忘了提到这是通过SSL(虽然我不期望这会有所作为).

编辑:

经过广泛的测试(并从Stackoverflow的精明成员的广泛的帮助),我已经确定405错误与网站正在使用的应用程序池直接相关,更具体地说,涉及到为应用程序池选择的管理流水线模式.

如果我使用一个针对v4.0(.NET Framework)和集成(管理管道模式)的应用程序池,那么我的AJAX帖子工作正常.但是,如果我使用的目标是v4.0和经典(管理管道模式)的应用程序池,那么我得到405错误.

所以在这一点上,我仍然在寻找一个解决这个问题的解决方案,尽管我已经能够回到这个问题.

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐