|
问题是这样的:
open 打开的是xml文件时,responseText正常
open 打开的是php文件时,responseText
( 用alert(xhr.responseText) )
浏览器提示:system does not support the specified coding
是不是编码的问题?(用xml时显示中文也出现问题,但php文件echo的是英文也不行,什么也不显示,alert(xhr.responseText)语句得到上面的出错提示)
所有源代码上都没有设header之类的语句。
已解决:php.ini中设 default_charset = "gb2312"
index.php部分代码:
- <form name="loginform" method="POST" action="">
-
- 帐号:
- <input name="logid" type="text" id="logid" onBlur="checkid(this)" size="20"/>
- <span id="n1" class="notic"></span><br />
- 密码:
- <input name="logpass" type="password" id="logpass" onBlur="checkpass(this);" size="20"/>
- <span id="n2" class="notic"></span><br />
- <input type="radio" name="logtype" value="manage" />
- 管理员
- <input type="radio" name="logtype" value="teacher"/>
- 教师
- <input type="radio" name="logtype" value="student" checked/>
- 学生<br />
- <input name="button" type="button" onClick="checkinput()" value="登陆"/>
- <input name="reset" type="reset" value="重置" />
- <input type="hidden" name="index">
- </form>
- <script language="javascript">
- //提示帐号输入的错误
- var xhr=false;
- var xhrmethod="POST";
- var xhrurl="test.xml";
- var xhrasyn=true;
- function xhrcallback(){
- alert("xhrcallbacking...");
- try{
- tmp=xhr.responseText;
- }catch(e){
- alert("不能赋值");
- }
- try{
- alert(String(tmp));
- }catch(e)
- {
- alert("A OH!!!");
- }
-
- alert("outing...");
- document.title="登陆成功";
- }
- function checkid(t)
- {
-
- //只充许输入数字
- var reg=/^\d+$/;
-
- if(!(t.value.match(reg)))
- n1.innerHTML="错误帐号";
- else
- n1.innerHTML="";
- }
-
- function checkpass(t)
- {
- if(t.value.length<1)
- n2.innerHTML="请输入密码!";
- else
- n2.innerHTML="";
- }
-
- function checkinput(){
- var t=document.forms["loginform"];
- var ltype;
- checkid(t.logid);
- checkpass(t.logpass);
-
- for(i=0;i<3;i++)
- if(t.logtype[i].checked)
- ltype=t.logtype[i].value;
-
- if(n1.innerHTML=="" && n2.innerHTML==""){
- xhrurl=ltype+"login.php";
- //xhrurl="test.xml";
- var postvar="&id="+escape(t.logid.value)+"&pass="+escape(t.logpass.value);
- t.disabled=true;
- tisi.style.zIndex=2;
- startXHR();
- xhr.send(postvar);
- }
- }
- </script>
- <script language="javascript" src="js/ajaxfns.js"></script>
复制代码
js/ajaxfns.js
function startXHR(){
xhr=null;
creatXHR();
xhr.onreadystatechange=setStateHandle;
xhr.open(xhrmethod,xhrurl,xhrasyn);//若改成xhr.open(xhrmethod,"abc.xml",xhrasyn)则没问题。
if(xhrmethod=="POST")
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
if (xhr.overrideMimeType) {
xhr.overrideMimeType('text/xml');
}
}
function creatXHR(){
if(window.ActiveXObject)
xhr=new ActiveXObject("Microsoft.XMLHTTP");
else
xhr=new XMLHttpRequest();
}
function setStateHandle(){
if(xhr.readyState==4){
if(xhr.status==200){
xhrcallback();
}
}
}
[ 本帖最后由 iptton 于 2006-11-3 20:01 编辑 ] |
|