+ -
当前位置:首页 → 问答吧 → Ajax不能传数据给asmx中的类

Ajax不能传数据给asmx中的类

时间:2011-12-01

来源:互联网

Ajax代码  
 //返回DataSet(XML)
  $(document).ready(function() {
  $('#btn5').click(function() {
  $.ajax({
  type: "POST",
  url: "WebService1.asmx/GetDataSet",
  data: "{i:1}",
  dataType: 'xml', //返回的类型为XML ,和前面的Json,不一样了
  success: function(result) {
  //演示一下捕获
  try {
  $(result).find("Table1").each(function() {
  $('#dictionary').prepend("<table><tr>");
  $('#dictionary').append("<td>" + $(this).find("ID").text() + "</td><td>" + $(this).find("Value").text() + "</td>");
  $('#dictionary').append("</tr><table>");
  });
  }
  catch (e) {
  alert(e);
  return;
  }
  },
  error: function(result, status) { //如果没有上面的捕获出错会执行这里的回调函数
  if (status == 'error') {
  alert(status);
  }
  }
  });
  });
  });

asmx中类的代码
  [WebMethod]
  public DataSet GetDataSet(int i)
  {
  DataSet ds = new DataSet();
  DataTable dt = new DataTable();
  dt.Columns.Add("ID", Type.GetType("System.String"));
  dt.Columns.Add("Value", Type.GetType("System.String"));
  DataRow dr = dt.NewRow();
  dr["ID"] = "1";
  dr["Value"] = "新年快乐";
  dt.Rows.Add(dr);
  if (i == 1)
  {
  dr = dt.NewRow();
  dr["ID"] = "2";
  dr["Value"] = "万事如意";
  dt.Rows.Add(dr);
  }
  ds.Tables.Add(dt);
  return ds;
  }
这是为什么?求个解决方法,谢谢。

作者: Mrdeng0   发布时间: 2011-12-01

WebService的递交格式不是POST方式的格式,不能直接用ajax调用
要用XMLSpy看一下正确的<soap>的递交格式,然后 用 xmlhttp的setHaed方法递交拼接的soap头

作者: hookee   发布时间: 2011-12-01

引用 1 楼 hookee 的回复:
WebService的递交格式不是POST方式的格式,不能直接用ajax调用
要用XMLSpy看一下正确的<soap>的递交格式,然后 用 xmlhttp的setHaed方法递交拼接的soap头

 
 但是在有时候没有使用参数传递时,这个是可以用的。

作者: Mrdeng0   发布时间: 2011-12-01

soap协议的格式是规定的
你可以查一下 xmlhttp调用 webservice,基本上都是拼接soap头这么做的,返回处理也很麻烦。

作者: hookee   发布时间: 2011-12-01

$.ajax({
  type: "POST",
  url: "WebService1.asmx/GetDataSet",
  data: "{i:1}",
  dataType: 'xml', //返回的类型为XML ,和前面的Json,不一样了
  success: function(result) {
这里的data: "{i:1}"中参数{i:1}主要是想弄成动态的,那么可以少些许多不带参数的函数。可是我连一个带参数的函数都弄不过,就得些几个差不多的类,代码页长了些。想呀,想呀,弄不来。
你说的这个我没接触过,不懂,看了也不用不来。
新手感觉压力很大。

作者: Mrdeng0   发布时间: 2011-12-01

我主要是参照的这个博客中的内容:jQuery Ajax 方法调用 Asp.Net WebService 的详细例子(原创)

作者: Mrdeng0   发布时间: 2011-12-01