js ajax setrequestheader方法的浏览器兼容性问题
jsajax使用post模拟表单发送数据的时候需要加上xmlhttp.setrequestheader("content-type","application/x-www...
js ajax 使用post模拟表单发送数据的时候需要加上
xmlhttp.setrequestheader( "content-type ", "application/x-www-form-urlencoded ");这句话
但是,这句在firefox中是不能运行的,但是在ie中是没有问题的,没有这句又不可以,急需解决方案啊
不要告诉我用jquery,我需要js的解决方案 展开
xmlhttp.setrequestheader( "content-type ", "application/x-www-form-urlencoded ");这句话
但是,这句在firefox中是不能运行的,但是在ie中是没有问题的,没有这句又不可以,急需解决方案啊
不要告诉我用jquery,我需要js的解决方案 展开
1个回答
展开全部
xmlhttp 是如何创建的?
应该是你在火狐中,创建的xmlhttp对象,没有成功。只采用IE下的创建方式
在IE与火狐中,创建xmlhttp对象的方法是不一样的,现在给你个方法,用来创建这个对象,你可以试试:
function createxmlhttp(){//创建xmlhttp对象
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
xmlhttp = false;
}
}
if(!xmlhttp && typeof XMLHttpRequest!='undefined'){
xmlhttp = new XMLHttpRequest();
if (xmlhttp.overrideMimeType){
xmlhttp.overrideMimeType('text/html');//设置MiME类别
}
}
return xmlhttp;
}
然后在你的AJAX方法中这样调用:
var xmlhttp= createxmlhttp();
if(!xmlhttp){
alert("你的浏览器不支持XMLHTTP!!");
return;
}
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
以上是我的AJAX实现方法,经测试,火狐/IE 及其他浏览器 都好用
有问题在追问
应该是你在火狐中,创建的xmlhttp对象,没有成功。只采用IE下的创建方式
在IE与火狐中,创建xmlhttp对象的方法是不一样的,现在给你个方法,用来创建这个对象,你可以试试:
function createxmlhttp(){//创建xmlhttp对象
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
xmlhttp = false;
}
}
if(!xmlhttp && typeof XMLHttpRequest!='undefined'){
xmlhttp = new XMLHttpRequest();
if (xmlhttp.overrideMimeType){
xmlhttp.overrideMimeType('text/html');//设置MiME类别
}
}
return xmlhttp;
}
然后在你的AJAX方法中这样调用:
var xmlhttp= createxmlhttp();
if(!xmlhttp){
alert("你的浏览器不支持XMLHTTP!!");
return;
}
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
以上是我的AJAX实现方法,经测试,火狐/IE 及其他浏览器 都好用
有问题在追问
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询