firefox不支持Ajax的问题
我写了个网页,用到了Ajax,JavaScript,在IE上能看到效果,在FireFox不能,functionajaxFunction(){if(window.XMLHt...
我写了个网页,用到了Ajax,JavaScript,在IE上能看到效果,在FireFox不能,function ajaxFunction()
{
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
if (req.overrideMimeType)
{
req.overrideMimeType("text/xml");
}
}else if(window.ActiveXObject)
{
try
{
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
this.http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
}
}
}
请大虾指点,谢谢 展开
{
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
if (req.overrideMimeType)
{
req.overrideMimeType("text/xml");
}
}else if(window.ActiveXObject)
{
try
{
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
this.http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
}
}
}
请大虾指点,谢谢 展开
4个回答
展开全部
给个兼容FF和IE的代码函数
//兼容IE和FF的ajax
function Ajax(){
var _xmlHttp = null;
this.createXMLHttpRequest = function(){
try {
if (window.ActiveXObject) {
_xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else if (window.XMLHttpRequest) {
_xmlHttp = new XMLHttpRequest();
}
}catch(e){
alert(e.name +" : " + e.message);
}
}
this.backFunction = function(_backFunction){
if(_xmlHttp.readyState == 4) {
if(_xmlHttp.status == 200) {
_backFunction(_xmlHttp.responseText);//这里可以设置返回类型
}
}
_xmlHttp.onreadystatechange = null;
}
this.doPost = function(_url,_parameter,_backFunction){
try {
_xmlHttp.open("POST",_url, false);
_xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
_xmlHttp.send(_parameter);
} catch(e) {
alert(e.name +" : " + e.message);
}
}
this.doGet = function(_url,_parameter,_backFunction){
try {
var _random = Math.round(Math.random()*10000);
_xmlHttp.open("GET", (_url+"?random=" +_random +"&" + _parameter), false);
_xmlHttp.send(null);
} catch(e) {
alert(e.name +" : " + e.message);
}
}
this.ajaxRequest = function(_url,_parameter,_method,_backFunction){
try{
this.createXMLHttpRequest();
if(_method.toLowerCase() == "post"){
this.doPost(_url,_parameter,_backFunction);
} else {
this.doGet(_url,_parameter,_backFunction);
}
try {
_xmlHttp.onreadystatechange = this.backFunction(_backFunction);
} catch(err) {
//??????IE?????????????????
}
} catch(e) {
alert(e.name +" : " + e.message);
}
}
}
/*
var url = "index.php";
var parameter = "parameter=parameter"; //这个使发送的参数
var method = "GET"
function callBack(text){ //处理返回的数据
.... ajax函数使用示例
}
new Ajax().ajaxRequest(url,parameter,method,callBack);
*/
下面再给个实例::
<!DOCTYPE html PUBliC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>ceshi.html</title>
<script language="javascript" type="text/javascript">
//兼容IE和FF的ajax
function Ajax(){
var _xmlHttp = null;
this.createXMLHttpRequest = function(){
try {
if (window.ActiveXObject) {
_xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else if (window.XMLHttpRequest) {
_xmlHttp = new XMLHttpRequest();
}
}catch(e){
alert(e.name +" : " + e.message);
}
}
this.backFunction = function(_backFunction){
if(_xmlHttp.readyState == 4) {
if(_xmlHttp.status == 200) {
_backFunction(_xmlHttp.responseText);//这里可以设置返回类型
}
}
_xmlHttp.onreadystatechange = null;
}
this.doPost = function(_url,_parameter,_backFunction){
try {
_xmlHttp.open("POST",_url, false);
_xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
_xmlHttp.send(_parameter);
} catch(e) {
alert(e.name +" : " + e.message);
}
}
this.doGet = function(_url,_parameter,_backFunction){
try {
var _random = Math.round(Math.random()*10000);
_xmlHttp.open("GET", (_url+"?random=" +_random +"&" + _parameter), false);
_xmlHttp.send(null);
} catch(e) {
alert(e.name +" : " + e.message);
}
}
this.ajaxRequest = function(_url,_parameter,_method,_backFunction){
try{
this.createXMLHttpRequest();
if(_method.toLowerCase() == "post"){
this.doPost(_url,_parameter,_backFunction);
} else {
this.doGet(_url,_parameter,_backFunction);
}
try {
_xmlHttp.onreadystatechange = this.backFunction(_backFunction);
} catch(err) {
//??????IE?????????????????
}
} catch(e) {
alert(e.name +" : " + e.message);
}
}
}
/*
var url = "index.jsp";
var parameter = "parameter=parameter";
var method = "GET"
function callBack(text){ //处理返回的数据
.... ajax函数使用示例
}
new Ajax().ajaxRequest(url,parameter,method,callBack);
*/
function userLogn(thisDom) {
var url = "index.php"; //自己定义指定的url地址,必须文件存在,且在同一个域上!!
msgFo = document.getElementById('msgForm');
usernameValue = msgFo.username.value;
userpasValue = String(msgFo.userpas.value);
var parameter = "uname=" + usernameValue + "&upassword=" + userpasValue; //发送的参数
alert(parameter);//检验填写的数据
var method = "GET"
newAjax = new Ajax();
newAjax.ajaxRequest(url, parameter, method, callBack);
}
function callBack(text){ //处理返回的数据
alert(text);//查看下返回的数据
text = 'uname|5|2010/01/03 22:00:11'; //如果为了测试js的效果,才开启,如测试jsp页面必须删除这个!!!重要
if(text) {
temp = text.split('|');
document.getElementById('msgUserName').innerHTML = temp[0];
document.getElementById('msgLognCount').innerHTML = temp[1];
document.getElementById('msgLastTime').innerHTML = temp[2];
document.getElementById('msg').style.display = 'block';//显示msg
document.getElementById('msgForm').style.display = 'none';//隐藏登录窗口
} else { //text返回数据为空
alert('密码错误,请重新登录!');
}
}
</script>
<style type="text/css">
<!--
#msg {
height:auto;
padding: 10px;
background-color:#EEEEEE;
display: none;/**默认是不显示的**/
position: absolute;/**这三项是控制在页面上的位置的**/
left: 230px;
top: 260px;
}
#msgContent {
height:auto;
padding: 2px 30px 10px;
font-size: 13px;
text-align: center;
background-color: #FFFFFF;
}
#msgContent div { text-align: left; }
#msgContent .blue { color:#0066FF; }
-->
</style>
</head>
<body style="width:100%">
<div class="" id="" style="border:#0000FF 3px dashed; font-size:16px; margin:30px; width:300px">
<form action="" method="get" id="msgForm">
用户名:<input name="username" type="text" value="uname" />
<br />
密码:<input name="userpas" type="password" value="upass" />
<br />
<input onclick="userLogn(this)" name="logn" type="button" value="提交" />
<input name="res" type="reset" value="重置" />
</form>
</div>
<div class="" id="msg">
<div class="" id="msgContent">
<hr />
<div id="msgHeader" class="msgHeader">
尊敬的 <span id="msgUserName" class="blue">XXX</span>
<span id="msgUserSex">先生</span>:
</div>
<br />
此次是你第 <span id="msgLognCount" class="blue">XX</span> 次 登录网上银行<br />
您上次登录网上银行的时间是:<br />
<br />
<span id="msgLastTime" class="blue">2000/10/09 21:23:03</span>
</div>
</div>
注意:
1、本代码使用到ajax的相关知识;主要是创建IE和火狐浏览器后兼容的ajax(),原来是实现无刷新登录的,修改了下下
2、必须指定存在且在同一域里的url地址(按你自己的情况,修改url = "index.php";
3、点击提交按钮即可,现在的提交按钮只是普通的按钮button
</body>
</html>
//兼容IE和FF的ajax
function Ajax(){
var _xmlHttp = null;
this.createXMLHttpRequest = function(){
try {
if (window.ActiveXObject) {
_xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else if (window.XMLHttpRequest) {
_xmlHttp = new XMLHttpRequest();
}
}catch(e){
alert(e.name +" : " + e.message);
}
}
this.backFunction = function(_backFunction){
if(_xmlHttp.readyState == 4) {
if(_xmlHttp.status == 200) {
_backFunction(_xmlHttp.responseText);//这里可以设置返回类型
}
}
_xmlHttp.onreadystatechange = null;
}
this.doPost = function(_url,_parameter,_backFunction){
try {
_xmlHttp.open("POST",_url, false);
_xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
_xmlHttp.send(_parameter);
} catch(e) {
alert(e.name +" : " + e.message);
}
}
this.doGet = function(_url,_parameter,_backFunction){
try {
var _random = Math.round(Math.random()*10000);
_xmlHttp.open("GET", (_url+"?random=" +_random +"&" + _parameter), false);
_xmlHttp.send(null);
} catch(e) {
alert(e.name +" : " + e.message);
}
}
this.ajaxRequest = function(_url,_parameter,_method,_backFunction){
try{
this.createXMLHttpRequest();
if(_method.toLowerCase() == "post"){
this.doPost(_url,_parameter,_backFunction);
} else {
this.doGet(_url,_parameter,_backFunction);
}
try {
_xmlHttp.onreadystatechange = this.backFunction(_backFunction);
} catch(err) {
//??????IE?????????????????
}
} catch(e) {
alert(e.name +" : " + e.message);
}
}
}
/*
var url = "index.php";
var parameter = "parameter=parameter"; //这个使发送的参数
var method = "GET"
function callBack(text){ //处理返回的数据
.... ajax函数使用示例
}
new Ajax().ajaxRequest(url,parameter,method,callBack);
*/
下面再给个实例::
<!DOCTYPE html PUBliC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>ceshi.html</title>
<script language="javascript" type="text/javascript">
//兼容IE和FF的ajax
function Ajax(){
var _xmlHttp = null;
this.createXMLHttpRequest = function(){
try {
if (window.ActiveXObject) {
_xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else if (window.XMLHttpRequest) {
_xmlHttp = new XMLHttpRequest();
}
}catch(e){
alert(e.name +" : " + e.message);
}
}
this.backFunction = function(_backFunction){
if(_xmlHttp.readyState == 4) {
if(_xmlHttp.status == 200) {
_backFunction(_xmlHttp.responseText);//这里可以设置返回类型
}
}
_xmlHttp.onreadystatechange = null;
}
this.doPost = function(_url,_parameter,_backFunction){
try {
_xmlHttp.open("POST",_url, false);
_xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
_xmlHttp.send(_parameter);
} catch(e) {
alert(e.name +" : " + e.message);
}
}
this.doGet = function(_url,_parameter,_backFunction){
try {
var _random = Math.round(Math.random()*10000);
_xmlHttp.open("GET", (_url+"?random=" +_random +"&" + _parameter), false);
_xmlHttp.send(null);
} catch(e) {
alert(e.name +" : " + e.message);
}
}
this.ajaxRequest = function(_url,_parameter,_method,_backFunction){
try{
this.createXMLHttpRequest();
if(_method.toLowerCase() == "post"){
this.doPost(_url,_parameter,_backFunction);
} else {
this.doGet(_url,_parameter,_backFunction);
}
try {
_xmlHttp.onreadystatechange = this.backFunction(_backFunction);
} catch(err) {
//??????IE?????????????????
}
} catch(e) {
alert(e.name +" : " + e.message);
}
}
}
/*
var url = "index.jsp";
var parameter = "parameter=parameter";
var method = "GET"
function callBack(text){ //处理返回的数据
.... ajax函数使用示例
}
new Ajax().ajaxRequest(url,parameter,method,callBack);
*/
function userLogn(thisDom) {
var url = "index.php"; //自己定义指定的url地址,必须文件存在,且在同一个域上!!
msgFo = document.getElementById('msgForm');
usernameValue = msgFo.username.value;
userpasValue = String(msgFo.userpas.value);
var parameter = "uname=" + usernameValue + "&upassword=" + userpasValue; //发送的参数
alert(parameter);//检验填写的数据
var method = "GET"
newAjax = new Ajax();
newAjax.ajaxRequest(url, parameter, method, callBack);
}
function callBack(text){ //处理返回的数据
alert(text);//查看下返回的数据
text = 'uname|5|2010/01/03 22:00:11'; //如果为了测试js的效果,才开启,如测试jsp页面必须删除这个!!!重要
if(text) {
temp = text.split('|');
document.getElementById('msgUserName').innerHTML = temp[0];
document.getElementById('msgLognCount').innerHTML = temp[1];
document.getElementById('msgLastTime').innerHTML = temp[2];
document.getElementById('msg').style.display = 'block';//显示msg
document.getElementById('msgForm').style.display = 'none';//隐藏登录窗口
} else { //text返回数据为空
alert('密码错误,请重新登录!');
}
}
</script>
<style type="text/css">
<!--
#msg {
height:auto;
padding: 10px;
background-color:#EEEEEE;
display: none;/**默认是不显示的**/
position: absolute;/**这三项是控制在页面上的位置的**/
left: 230px;
top: 260px;
}
#msgContent {
height:auto;
padding: 2px 30px 10px;
font-size: 13px;
text-align: center;
background-color: #FFFFFF;
}
#msgContent div { text-align: left; }
#msgContent .blue { color:#0066FF; }
-->
</style>
</head>
<body style="width:100%">
<div class="" id="" style="border:#0000FF 3px dashed; font-size:16px; margin:30px; width:300px">
<form action="" method="get" id="msgForm">
用户名:<input name="username" type="text" value="uname" />
<br />
密码:<input name="userpas" type="password" value="upass" />
<br />
<input onclick="userLogn(this)" name="logn" type="button" value="提交" />
<input name="res" type="reset" value="重置" />
</form>
</div>
<div class="" id="msg">
<div class="" id="msgContent">
<hr />
<div id="msgHeader" class="msgHeader">
尊敬的 <span id="msgUserName" class="blue">XXX</span>
<span id="msgUserSex">先生</span>:
</div>
<br />
此次是你第 <span id="msgLognCount" class="blue">XX</span> 次 登录网上银行<br />
您上次登录网上银行的时间是:<br />
<br />
<span id="msgLastTime" class="blue">2000/10/09 21:23:03</span>
</div>
</div>
注意:
1、本代码使用到ajax的相关知识;主要是创建IE和火狐浏览器后兼容的ajax(),原来是实现无刷新登录的,修改了下下
2、必须指定存在且在同一域里的url地址(按你自己的情况,修改url = "index.php";
3、点击提交按钮即可,现在的提交按钮只是普通的按钮button
</body>
</html>
展开全部
您好!很高兴为您答疑!
Firefox支持Ajax,但您前面声明的变量一直是req,最后的变量又声明到this.http_request。您可以使用Firebug检测下。
您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。
Firefox支持Ajax,但您前面声明的变量一直是req,最后的变量又声明到this.http_request。您可以使用Firebug检测下。
您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我不会Ajax编码,但是我知道Firefox是支持Ajax的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前面声明的变量一直是req,最后的变量声明到this.http_request,然后不知道您具体请求里面使用的什么变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |