firefox浏览器下ajax代码不能运行

来源:百度知道 编辑:UC知道 时间:2024/09/26 00:31:25
以下代码在ie浏览器先正常运行,但是在firefox下不执行,也不提示错误,用来判断数据库中有无同名注册帐户的

--------------------------------------------

var xmlHttp = false;
if(window.ActiveXObject){
xmlHttp=new window.ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlHttp=new window.XMLHttpRequest();
}else{
throw new Error("dose not support Ajax programme");
}

function callServer() {

var u_name = document.getElementById("regname_test").value;
if ((u_name == null) || (u_name == "")) return;
var url = "ajax_testusername.asp?name=" + escape(u_name);
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = updatePage;
xmlHttp.send(null);
}

function updatePage() {
if (xmlHttp.readyState < 4) {
test1.innerHTML="正在检测用户名是否可用……";
}
if (xmlHttp.readyState == 4) {
var r

if ((u_name == null) || (u_name == "")) return;
这里的两个表达式u_name == null,u_name == ""是等价的,因为==运算符把null和""都看作false

var url = "ajax_testusername.asp?name=" + escape(u_name);
url的编码不应该用escape,而是window.encodeURIComponent

xmlHttp.open("GET", url, true);
这里get不用大写

test1.innerHTML="正在检测用户名是否可用……";
test1没有声明。

document.thisForm.issubmit.disabled=true}else{
document.thisForm没有声明

另外,比较字符串是一个很费时间的过程,在服务器端的代码也需要改,应该在响应的头部设置一个值,并通过这个值来判断是否已有这个用户名

  您好,感谢您对火狐的支持

  代码里的问题比较多,如:var url = "ajax_testusername.asp?name=" + escape(u_name);
url的编码不应该用escape,而是window.encodeURIComponent
  您可以在火狐官方网站下载火狐浏览器,在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。

function createXMLHttpRequest()
{
//对于Mozilla 浏览器
if(window.XMLHttpRequest)
{
//直接使用XMLHttpRequest函数来创建XMLHttpRequest对象
XMLHttpReq = new XMLHttpRequest();<