日期:2014-05-16  浏览次数:20353 次

jquery的 $.ajax 方法一直ERROR~
var jsTime = "2012-05-08 12:00";
  //调用后台方法 js时间检索服务器,是否有数据
  $.ajaxSetup({ async: false, cache: false });
  $.ajax({
  type: "post",
  dataType: "json",
  data: "{jsTime:'" + jsTime + "'}",
  contentType: "application/json; charset=utf-8",
  url: "navigationbars.ascx/getMemInfo",
  success: function (data) {
  if (data.d != "") {
  //截取该对象,获取字符串中的Contents,mid
  var entity = data.d;
  var pairs = entity.split(',');
  var mid = pairs[0].value;
  var content = pairs[1].value;
  alert(mid);
  alert(content);
  }
  },
  error: function () {
  alert("ajax方法Error!");
  }
  });




这是前台

-----------------------------------------------------------------


  [WebMethod]
  public static string getMemInfo(string jsTime){
  //调用方法,返回数据
  OA.BLL.MEMORANDUM mm = new OA.BLL.MEMORANDUM();
  DataSet ds = mm.GetList("start_time ='" + jsTime+"'");
  if (ds != null)
  { 
  OA.Model.MEMORANDUM memo = new OA.Model.MEMORANDUM();
  //ds转化成对象
  foreach (DataRow dr in ds.Tables[0].Rows)
  {
  memo.memorandum_id = Convert.ToInt64(dr["memorandum_id"]);
  memo.contents = dr["contents"].ToString();
  }
  //对象转换成字符串,用_ ,都行
  return memo.memorandum_id.ToString() + "," + memo.contents.ToString();
  }
  return "";
  }

这是底层



-----------------------------------------------------


为什么前台调用这个方法会一直ERROR,后台代码测试正常。是ajax里面的方法执行有问题。请大神帮忙看看,另外还想问一个问题,如果再遇到ajax方法出错的情况下,应该怎么去调试错误。

------解决方案--------------------
后台返回的json数据有问题吧。。认真仔细检查下数据。
------解决方案--------------------
帮助时这样写的:
 请求失败时调用此函数。有以下三个参数:XMLHttpRequest 对象、错误信息、(可选)捕获的异常对象。如果发生了错误,错误信息(第二个参数)除了得到null之外,还可能是"timeout", "error", "notmodified" 和 "parsererror"。

你可以打印下错误信息看看
------解决方案--------------------
用firefox的firebug调试,如何调试网上很多资料.

看ajax错误可看(均在firebug中显示):


JScript code
$.ajax({
url : "/education2/json/getSearchQuestionknowledgeview",
type: "post",
data : params,
dataType : "json",
cache : false,
error : function(textStatus, errorThrown) {
alert("系统ajax交互错误: " + textStatus);
}, 
.....

------解决方案--------------------
error: function (xhr, type, exception) {
Alert(xhr.responseText, "Failed");
}

调试看下三个参数的值,目测错误应该是parseerror
------解决方案--------------------
data: "{jsTime:'" + jsTime + "'}",

==>

data: {'jsTime': jsTime },


单步调试一下