AJAX中 post模式下 无法send问题

warmworm 2010-09-07 02:31:26
写了个函数
function AjaxLogin(url){
var xmlObj = null;
if(window.XMLHttpRequest){
xmlObj = new XMLHttpRequest();
} else if(window.ActiveXObject){
xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
} else {
return;
}



xmlObj.onreadystatechange = function(){
if(xmlObj.readyState == 4){
var rstr;
//var mylevl = parseInt(xmlObj.responseXML.getElementsByTagName('int')[0].firstChild.data);
alert( xmlObj.responseText );
}
}
xmlObj.open ('POST', url, true);
xmlObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded' );
xmlObj.send ("UserName=xxxx&Pwd=xxxx");
}

做AJAX的调用
但奇怪的是xmlObj.send的内容并没有出现
用网页侦探查看HTTP协议

可以看到
Content-Length: 22 表明长度是对的
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: ASPSESSIONIDAAQSRSDC=DCDDFLNCCEKOMBLAHNGCFIGH

不要用GET模式,只能用POST模式
网上找了点资料都说只要这样调用就可以
不知道还有哪里没有处理
不知道有没有办法可以跟踪到send函数内部看看出了什么事情
...全文
219 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
warmworm 2010-09-09
  • 打赏
  • 举报
回复
问题找到了
在这种模式下,如果AJAX无法发现WSDL接口时
HTTP协议传输就会出这种奇怪的错误
长度有,但却不传数据
应该是个BUG

搞得我以为是AJAX调用出了什么问题
实际上是个低级错误,WSDL接口写错了
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ibm_hoojo 的回复:]
引用 3 楼 warmworm 的回复:

引用 2 楼 ibm_hoojo 的回复:
JScript code
function AjaxLogin(url){
var xmlObj = null;
if(window.XMLHttpRequest){
xmlObj = new XMLHttpRequest();
} else if(window.ActiveXObject){
……
[/Quote]
没碰到过这种问题,换其他浏览器试试
warmworm 2010-09-07
  • 打赏
  • 举报
回复
参数是肯定没有发出去
我用的是艾菲网页侦探,直接看HTTP协议的TCP数据传输
hoojo 2010-09-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 warmworm 的回复:]

引用 2 楼 ibm_hoojo 的回复:
JScript code
function AjaxLogin(url){
var xmlObj = null;
if(window.XMLHttpRequest){
xmlObj = new XMLHttpRequest();
} else if(window.ActiveXObject){
xmlObj = new ActiveXOb……
[/Quote]
用firebug看看控制台的post/响应信息
看看参数发出去了没
warmworm 2010-09-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ibm_hoojo 的回复:]
JScript code
function AjaxLogin(url){
var xmlObj = null;
if(window.XMLHttpRequest){
xmlObj = new XMLHttpRequest();
} else if(window.ActiveXObject){
xmlObj = new ActiveXObject("Microsof……
[/Quote]

试过了,还是不行
网页侦探
POST /svr.asmx HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; 360SE)
Host: www.xxxxx.com.cn
Content-Length: 22 <---看有长度
Connection: Keep-Alive
Cache-Control: no-cache

<--这里本来应该有 UserName=xxxx&Pwd=xxxx,但却是空行
hoojo 2010-09-07
  • 打赏
  • 举报
回复
function AjaxLogin(url){
var xmlObj = null;
if(window.XMLHttpRequest){
xmlObj = new XMLHttpRequest();
} else if(window.ActiveXObject){
xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
} else {
return;
}
alert(xmlObj);//是否成功创建
xmlObj.open ('POST', url, true);
xmlObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded' );
xmlObj.onreadystatechange = function(){//放到这里来看看
if(xmlObj.readyState == 4 && xmlObj.status == 200){//状态200
var rstr;
//var mylevl = parseInt(xmlObj.responseXML.getElementsByTagName('int')[0].firstChild.data);
alert( xmlObj.responseText );//看看有没有回调,及后台有没有代码运行
}
}
xmlObj.send ("UserName=xxxx&Pwd=xxxx");
}
yachuan 2010-09-07
  • 打赏
  • 举报
回复
主题:基本的封装---Ajax之一
http://www.javaeye.com/topic/738071
主题:改造请求参数---Ajax之二
http://www.javaeye.com/topic/738085

推荐你仔细看下这个代码,很经典的Ajax封装,

52,792

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧