ajax post 在 ff3.6 中的问题
时间:2011-06-30
来源:互联网
小弟今天想要用AJAX POST方式向服务器上传一个大的字符串。
但是遇到了FF3.6 也就是Gecko 1.9的问题, FF会先向服务器发送一个OPTIONS请求。然后就没有然后了。
在网上找解决方法,发现把"Content-Type"改成"text/plain"就可以使用POST请求了,但是遇到了服务器500错误。
不知道各位大神有没有什么好的解决方案。
Mozilla的HTTP访问控制这里说跨域才会发送OPTIONS请求,但是没有跨域也会发送。不知道为什么。
求各位大神指点迷津
但是遇到了FF3.6 也就是Gecko 1.9的问题, FF会先向服务器发送一个OPTIONS请求。然后就没有然后了。
在网上找解决方法,发现把"Content-Type"改成"text/plain"就可以使用POST请求了,但是遇到了服务器500错误。
不知道各位大神有没有什么好的解决方案。
Mozilla的HTTP访问控制这里说跨域才会发送OPTIONS请求,但是没有跨域也会发送。不知道为什么。
求各位大神指点迷津

作者: jhrxx 发布时间: 2011-06-30
JScript code
用这个对象里封装的方法试试
var ajax = {//xmlhttp request tryList:function(){ var xhr = null; for(var i=0;i<arguments.length;i++){ var lambda = arguments[i]; try{xhr = lambda();break;}catch(e){} } return xhr; }, init:function(){ return this.tryList( function(){return new ActiveXObject('MSXML2.XMLHttp.6.0');}, function(){return new ActiveXObject('MSXML2.XMLHttp.3.0');}, function(){return new XMLHttpRequest();}, function(){return new ActiveXObject('MSXML2.XMLHttp.5.0');}, function(){return new ActiveXObject('MSXML2.XMLHttp.4.0');}, function(){return new ActiveXObject('Msxml2.XMLHTTP');}, function(){return new ActiveXObject('MSXML.XMLHttp');}, function(){return new ActiveXObject('Microsoft.XMLHTTP');} ) || null; }, post:function(sUrl,sArgs,bAsync,fCallBack,errmsg){ var xhr = this.init(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ if(xhr.responseText){ if(fCallBack.constructor==Function){fCallBack(xhr);} }else{ alert(errmsg); } } }; xhr.open('POST',encodeURI(sUrl),bAsync); xhr.setRequestHeader('Content-Length',sArgs.length); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhr.send(sArgs); }, get:function(sUrl,bAsync,fCallBack,errmsg){ var xhr = this.init(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ if(xhr.responseText){ if(fCallBack.constructor==Function){fCallBack(xhr);} }else{ alert(errmsg); } } }; xhr.open('GET',encodeURI(sUrl),bAsync); xhr.send('Null'); } } ajax.post("地址","参数[name=value&name=value]这种形式",true,function(xhr){alert(xhr.responseText)},"错误提示字符")
用这个对象里封装的方法试试
作者: aspwebchh 发布时间: 2011-06-30
引用 1 楼 aspwebchh 的回复:
JScript code
var ajax = {//xmlhttp request
tryList:function(){
var xhr = null;
for(var i=0;i<arguments.length;i++){
var lambda = arguments[i];
……
JScript code
var ajax = {//xmlhttp request
tryList:function(){
var xhr = null;
for(var i=0;i<arguments.length;i++){
var lambda = arguments[i];
……
能不能使用JQUERY呢,这个照样是先send 一个 OPTIONS 。
作者: jhrxx 发布时间: 2011-06-30
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28