急!!req.open("Get",url,true)出错,搞了两天也没找到错误的原因。 - Web 开发 / Ajax
我把页面的所有项做为参数都放到url中,可在执行      req.open( "Get ",url,true); 
 这句时会出错,角本报的是“未指明的错误”。注释掉for循环,可以执行过去,说明是url有问题。可怪的就是在这里,我同一个页面,执行同样的操作,比如同样的执行两个删除动作,有的时候就能够执行过去,有时就会出错,根本找不到出错的原因,没有规律可言,我都快疯掉了,谁来救救我啊???? 
             不知道url参数有什么特殊要求吗,比如是否有不支持的特殊字符、或长度有限制...... 
             等待达人指点迷津!!   
             var   url   =    "/CheckModify?method= "   +   escape( "get "); 
 	for   (i=0;i <document.forms[0].elements.length;i++){ 
 	      curname=document.forms[0].elements[i].name; 
 	      curvalue=document.forms[0].elements[i].value; 
 	      if   ( " "   !=   curname)   { 
 		      url   =   url   +    "& "   +   curname   +    "= "   +   escape(curvalue); 
 	      } 
 	}                                             
             if   (window.XMLHttpRequest)   { 
                         req   =   new   XMLHttpRequest(   ); 
             } 
             else   if   (window.ActiveXObject)   { 
                         req   =   new   ActiveXObject( "Microsoft.XMLHTTP "); 
             } 
             alert( "1 "); 
             req.open( "Get ",url,true); 
             alert( "2 "); 
             req.onreadystatechange   =   callback; 
             req.send(null);
------解决方案--------------------url长度有限制,字符也有限制, "get "是合法的,你用了escape,curname, curvalue很可能不合法,你却没有用   
 长度不知道是否会过长,要看页面的长度,像这样的情况建议还是用POST方法,而不是GET方法好。
------解决方案--------------------if ( " " != curname)  
 你这里只判断了curname不为空,那如果curvalue为空的时候得到的url就不对了。 
 你在做完循环后用alert(url);检查一下你作成的url好了。
------解决方案--------------------// 改成这样测试一下呢:   
 var url =  "/CheckModify?method=get "; 
 for (i=0;i <document.forms[0].elements.length;i++){ 
   curname=document.forms[0].elements[i].name;     
   curvalue=document.forms[0].elements[i].value;   
   if (curname) { 
   curvalue = curvalue ||  " "; 
   url = url +  "& " + curname +  "= " + escape(curvalue); 
   } 
 }               
 //------------------------------------- 
 alert(url); //查看一下url的值 
 //------------------------------------- 
     if (window.XMLHttpRequest) { 
         req = new XMLHttpRequest( ); 
     } 
     else if (window.ActiveXObject) { 
         req = new ActiveXObject( "Microsoft.XMLHTTP "); 
     } 
     alert( "1 "); 
     req.open( "Get ",url,true); 
     alert( "2 "); 
     req.onreadystatechange = callback; 
     req.send(null);