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的解决方案
展开
 我来答
百度网友90999d9
2011-09-06 · TA获得超过485个赞
知道小有建树答主
回答量:172
采纳率:100%
帮助的人:181万
展开全部
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 及其他浏览器 都好用
有问题在追问
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式