HTTP 错误 405.0 - 不允许使用 Jquery ajax get 的方法

Posted

技术标签:

【中文标题】HTTP 错误 405.0 - 不允许使用 Jquery ajax get 的方法【英文标题】:HTTP Error 405.0 - Method Not Allowed using Jquery ajax get 【发布时间】:2012-02-23 16:36:43 【问题描述】:

我正在开发一个用户必须插入用户名的表单。我想检查模糊用户的用户名是否有效:

我添加了这个脚本:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js"></script>

html 中:

<input name="username" type="text" onblur="checkUsername()">

脚本:

function checkUsername()
    var usn = document.getElementsByName('username')[0];
    if(usn.value != "") 
       var html = $.ajax(
       type: "GET",
       url: "checkUsername.php?",
       data: "usr=" +usr.value 
       async: false,
       dataType: "text").responseText;   
       if(html == "si") 
          usn.style.backgroundColor = "green";
        else 
          usn.style.backgroundColor = "red";
          usn.value = "Username still exists!";
       
    

所以onBlur 不起作用,当我提交表单时出现如下错误:

HTTP Error 405.0 - Method Not Allowed
The page you are looking for cannot be displayed because an invalid method (HTTP verb) is being used.

我能做什么?问题出在哪里?

【问题讨论】:

***.com/q/1400210/1164491 ***.com/q/6841139/1164491 并阅读这篇forums.asp.net/t/1650010.aspx/1 我正在使用在线主机,我可以编辑任何内容 您可以访问checkUsername.php 吗?检查上面链接中提到的重定向。 【参考方案1】:

通常当我从 Jquery 运行 AJAX 命令时,我的数据属性是这样的数组:

 $.ajax(
    type: "GET",
    url: "checkUsername.php",
    data: 
        usr: usr.value 
    ,
   async: false,
   dataType: "text").responseText;   

【讨论】:

@JackTurky 它与你的 jQuery 脚本无关。【参考方案2】:

首先考虑将您的 JQuery 升级到 1.6.x 版本。

试试这个修改后的脚本版本:

function checkUsername()
    var usn = document.getElementsByName('username')[0];
    if(usn.value != "") 
       var html = $.ajax(
       url: "checkUsername.php",
       data: "usr=" +usr.value 
       async: false,
       dataType: "text").responseText;   
       if(html == "si") 
          usn.style.backgroundColor = "green";
        else 
          usn.style.backgroundColor = "red";
          usn.value = "Username still exists!";
       
    

【讨论】:

为什么是1.6.x?最新的稳定版本是1.7.1 我知道,但有时从旧版本升级到最新版本会破坏现有代码。虽然 1.6.x 分支离 1.5.x 不远,但它充满了 $.ajax() 函数的错误修复:blog.jquery.com/2011/05/03/jquery-16-released @JackTurky 您确定您尝试执行的请求不是跨域或用户名/密码保护的请求吗?尝试单独测试 php 脚本,调试 GET 参数,然后在 javascript 中做同样的事情,使用控制台而不是警报。 完成!我不知道问题出在哪里,我重新缩进并全部更新 ;)【参考方案3】:

在选项中添加

dataType: 'jsonp',

【讨论】:

【参考方案4】:

要做的另一件事是检查您的ajax调用上方的javascript错误,这也会导致405错误......

【讨论】:

以上是关于HTTP 错误 405.0 - 不允许使用 Jquery ajax get 的方法的主要内容,如果未能解决你的问题,请参考以下文章

WebApi 2 HttpPut,HttpDelete,HttpPost无法正常工作-HTTP错误405.0 - 方法不允许

在input中回车后页面提交导致出现HTTP 错误 405.0 - Method Not Allowed

ABP PUTDELETE请求错误405.0 - Method Not Allowed 因为使用了无效方法(HTTP 谓词) 引发客户端错误 No 'Access-Control-Allow

请求部署在 IIS7.5 上的 REST 服务的 Put/Post/Delete 操作发生 HTTP Error 405.0 - Method Not Allowed 错误之解决

HTTP Error 405.0 - Method Not Allowed 无法显示您正在查找的页面,因为使用了无效方法(HTTP 谓词)。

ASP.Net Core 发布项目遇到的错误 405.0