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 谓词)。