AJAX请求未路由到正确的url
我在ajax调用中遇到问题。我没有找到正确的方向AJAX请求未路由到正确的url,ajax,url,Ajax,Url,我在ajax调用中遇到问题。我没有找到正确的方向 <script> function showsql(form) { var str=form.q.value; if (str=="") { document.getElementById("sqlreturn").innerHTML=""; return; } document.getEl
<script>
function showsql(form)
{
var str=form.q.value;
if (str=="")
{
document.getElementById("sqlreturn").innerHTML="";
return;
}
document.getElementById("sqlreturn").innerHTML="1";
if(window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
document.getElementById("sqlreturn").innerHTML="2";
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadstatechange = function()
{
if(xml.http.readState==4 && xmlhttp.status==200)
{
document.getElementById("sqlreturn").innerHTML=xml.responseText;
}
document.getElementById("sqlreturn").innerHTML="4";
}
var url="index.php";
url = url+"?at=stats";
url = url+"&q="+str;
document.getElementById("sqlreturn").innerHTML=url;
xmlhttp.open("GET",url,true);
xmlhttp.send();
//document.getElementById("sqlreturn").innerHTML="3";
}
</script>
<form action="" method="GET" >
SELECT <input type="text" name="q" id="q" value="" />
<input type="submit" value="submit" action="showsql(this.form) "/>
</form>
<div id="sqlreturn">
</div>
有了这个,我应该可以访问index.php?at=stats&q=。我最终选择index.php?q=作为替代。你知道为什么会这样,或者怎么解决吗?谢谢你的帮助
xmlhttp.onreadstatechange
应该是
xmlhttp.onreadystatechange
这是你的工作代码吗?它还有许多与上面类似的错误。看
if(xml.http.readState==4 && xmlhttp.status==200)
{
document.getElementById("sqlreturn").innerHTML=xml.responseText;
}
编辑:
问题是,即使您首先发送ajax请求,就在那个之后,表单确实会作为正常的http GET请求提交。因为您使用了submit按钮输入类型=submit而不是普通按钮输入类型=button,并且您没有阻止默认的submit事件
因此,请使用普通按钮替换提交按钮。为此,只需将type属性替换为value按钮。我不认为输入元素有一个叫做action的属性。对于输入元素,应该使用onclick属性而不是action。Oops,没有捕捉到这一点。这并没有解决我的大问题,但以后可能会引起头痛。我不知道你说的工作代码是什么意思。代码本身不起作用,但这正是我要努力做到的。谢谢:谢谢你的帮助,我试着把它改成onclick,但是当我这么做的时候,什么也没发生。javascript函数showsql运行。它正确地创建了url,但之后似乎什么也不做。@Kamis使用Firebug firefox扩展的网络面板调试ajax请求和响应。您是否更正了我之前在xmlhttp相关代码中指出的错误?无论如何,如果您指的是为什么在div中总是得到4而不是响应,因为在If条件之后,您再次将div sqlreturn的html替换为4。