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;
}
这是为什么?求个解决方法,谢谢。
//返回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头
要用XMLSpy看一下正确的<soap>的递交格式,然后 用 xmlhttp的setHaed方法递交拼接的soap头
作者: hookee 发布时间: 2011-12-01
引用 1 楼 hookee 的回复:
WebService的递交格式不是POST方式的格式,不能直接用ajax调用
要用XMLSpy看一下正确的<soap>的递交格式,然后 用 xmlhttp的setHaed方法递交拼接的soap头
WebService的递交格式不是POST方式的格式,不能直接用ajax调用
要用XMLSpy看一下正确的<soap>的递交格式,然后 用 xmlhttp的setHaed方法递交拼接的soap头
但是在有时候没有使用参数传递时,这个是可以用的。
作者: Mrdeng0 发布时间: 2011-12-01
soap协议的格式是规定的
你可以查一下 xmlhttp调用 webservice,基本上都是拼接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}主要是想弄成动态的,那么可以少些许多不带参数的函数。可是我连一个带参数的函数都弄不过,就得些几个差不多的类,代码页长了些。想呀,想呀,弄不来。
你说的这个我没接触过,不懂,看了也不用不来。
新手感觉压力很大。
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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28