ajax很奇怪的问题,高手进!!!

来源:百度知道 编辑:UC知道 时间:2024/05/12 07:03:21
问题:无法获得服务器返回的值,而且也无法输出xmlhttp.readystate和xmlhttp.status得状态。急!解决加分!
客户端代码:
...
<script type="text/javascript">
<!--
var xmlhttp;
function createHTTP()
{
//根据不同的浏览器创建XMLHttpRequest
if(window.ActiveXObject)
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
}
//开始调用
function startHTTP(col)
{
//创建对象
createHTTP();
alert(col.value);
url="change_opt.asp?col="+col.value;
//状态变化与事件挂钩
xmlhttp.onreadystatechange=StateDO;
//获取XML文件的数据
xmlhttp.open("GET",url,true);
//不带任何参数
xmlhttp.send(null);
function StateDO()
{
//判断是否是完成状态

首先你得贴出出错提示是什么,再就是仔细检查一下自己的代码的语法,有没有漏掉}之类的东西方,如这里就漏掉了, function startHTTP(col)
{
//创建对象
createHTTP();
alert(col.value);
url="change_opt.asp?col="+col.value;
//状态变化与事件挂钩
xmlhttp.onreadystatechange=StateDO;
//获取XML文件的数据
xmlhttp.open("GET",url,true);
//不带任何参数
xmlhttp.send(null);

这样都出现语法错误了,JS会卡在那里,不会往下走的.

首先问一下,你的js与服务端asp同域吗?
普通XML不能跨域,跨域必须用jsonp.
例如,http://localhost/http://127.0.0.1/虽然都是本机,但不同域

遇到这种问题,用firefox来debug很不错啊,本人习惯firefox+firebug(一个插件),firefox自带的工具>错误控制台,也很强大,http://www.mozilla.com
fierbug还可以跟踪xhr请求返回数据的详细

ajax现在用的框架比较多,很少人自己写了,你可以试一下jQuery