jQuery AJAX帖子收到405错误(HTTP动词POST不允许)

前端之家收集整理的这篇文章主要介绍了jQuery AJAX帖子收到405错误(HTTP动词POST不允许)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下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错误.

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

解决方法

基于此:

The jQuery post and the web method both work wonderful in a Windows Authenticated environment (ie – users are authenticated by LDAP). However,I recently had to move the website to a server that uses RSA (two-factor authentication,pin and token code) for authenticating users in order to gain access to the site. And what I’m seeing now is that all my jQuery posts are returning “405 error”.

很明显,该错误与服务器配置有关,但要完全确定,如果可以,在RSA服务器中创建一个新站点,并且该站点禁用RSA身份验证,请尝试浏览您的站点,以确保该错误仅与RSA身份验证相关,丢弃与新服务器中的代码相关的组件/配置

一旦丢弃了与代码相关的配置问题,我建议您仔细检查您的RSA配置(这可能很棘手).一旦我在使用RSA安全性的项目中工作,以便跨服务器实现SSO. (单点登录),我记得在服务器级安装了一个RSA ISAPI筛选器,这个筛选器负责读/设置身份验证cookie,以便根据Active Directory服务器验证每个请求.

由于每个请求由此过滤器管理,并且此ISAPI筛选器位于流水线的顶部,所以每个请求必须先由RSA ISAPI筛选器处理,以便进行身份验证

所以我的建议是双重检查RSA配置,以检测是否有东西阻塞您的AJAX帖子

我记得RSA配置就像一个黑魔法盒,我们没有足够的文档,配置它是一个PITA.我真诚希望您的组织不是这样

猜你在找的jQuery相关文章