在微信中调用ajax出现的问题

背景:最近在开发微信,使用的是asp.net开发,Jquery版本是1.8.0。

   在微信中点击按钮触发事件,调用ajax与服务器端进行交互,回调函数走的是error。

 

分析原因:首先我想到的是返回的数据类型有问题,因为在jquery 版本在1.4以上对json的格式非常严格,需要符合{"target":true,"message":"成功"}这样的格式。用JSON.stringify()函数分析了response对象,结果符合,排除了原因。

既然ajax 走的是error,我开始分析error函数的参数,分别有XMLHttpRequest, textStatus, errorThrown。我发现XMLHttpRequest.status等于0,XMLHttpRequest.readyState等于0,说明窗体中有XMLHttpRequest对象却没有初始化,接下来开始研究怎么初始化XMLHttpRequest对象。

 

解决办法:

var xmlHttpRequest;

$(function(){

if(window.XMLHttpRequest){

xmlHttpRequest=new XMLHttpRequest();

}else{

xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");

}

xmlHttpRequest.open("GET","AjaxServlet",true);

});

 

这样就能解决以上描述的问题,注意PC端访问一般的Ajax不会出现问题,因为PC中浏览器都有内建的 XMLHttpRequest对象,而在微信中,出现此现象,可能需要手动去构建和初始化。

 

在微信中调用ajax出现的问题

上一篇:【微信远程控制服务器】springmvc mybaits mysql oracle shiro ehcache HTM5 bootstrap 后台框架源码


下一篇:Project Euler 14(结论)