jquery调用后台并返回值

时间:2021-08-31 23:56:49

$(document).ready(function(){
$("tr.abc").click(function(){
var x = $(this).find("td").eq(1).html();
var y = $("input#TextBox1").val();
var z = $(this).find("td").eq(10).html();
var sendData = "{id:'" + x + "',date:'" + y + "',stid:'" + z + "'}";//利用alert(sendData);测试数值正常
$.ajax({
type:"POST",
url:"select.aspx/getprice",
contentType: "application/json;charset=utf-8",
data:sendData,
dataType: 'json',
success:function(result){alert(result.d);}
});
});});


//select.aspx.cs
[WebMethod]
    public static string getprice(string busid, string busdate, string stid)
    {
        IDataParameter[] parameters = new SqlParameter[] { new SqlParameter(@"price",SqlDbType.Decimal),
            new SqlParameter(@"id",SqlDbType.Char,4), new SqlParameter(@"date",SqlDbType.DateTime,8), new SqlParameter(@"stid",SqlDbType.Char,4)};
        parameters[1].Value = id;
        parameters[2].Value = date;
        parameters[3].Value = stid;
        parameters[0].Direction = ParameterDirection.Output;

        SqlData d = new SqlData();
        decimal result = d.SQL_SP("getprice", parameters);
        return result.ToString();
    }


后台的getprice函数用一般asp.net触发方法也测试过是正常的!现在不知道什么原因就是点了没反应!

getprice的d.SQL_SP()是调用SQLData.cs的SQL_SP()方法的,这个是不是也要变为static函数??

还是其他原因呢?哪位朋友帮帮忙啊???之前开了个帖子也没得出答案啊!!!

51 个解决方案

#1


public static string getprice(……)static ?去掉static 试试

#2


var sendData = "{id:'" + x + "',date:'" + y + "',stid:'" + z + "'}";

public static string getprice (string busid, string busdate, string stid)
命名要一致

var sendData = "{id:'" + x + "',date:'" + y + "',stid:'" + z + "'}";
public static string getprice (string id, string date, string stid)

#3


引用 2 楼 sandy945 的回复:
var sendData = "{id:'" + x + "',date:'" + y + "',stid:'" + z + "'}";

public static string getprice (string busid, string busdate, string stid)
命名要一致

var sendData = "{id:'" + x + "',date:'" + y……


那个是一致的,我发上来时没修改而已

#4


该回复于2011-04-07 16:16:49被版主删除

#5



dataType: 'json',

去掉看看 。dataType是预期返回的数据类型 。
result 能弹出吗 ?

#6


能进到 getprice 方法体内么?

contentType: "application/json;charset=utf-8",

 先去掉

#8


url:"select.aspx/getprice"首页这个路径有没有错

    $.ajax({
        type: "post",
        contentType: "application/json; charset=utf-8",
        url: "/WebService/User.asmx/UserRegist",
        data: "{'u_name':'" + username + "','u_email':'" + useremail + "','u_pwd':'" + userpwd + "','u_validate':'" + uservalidate + "'}",
        success: function(result) {
            var json = eval('(' + result + ')');
            if (json.d == 0) {
                $("#result").removeClass("green").addClass("codevalidate").text("请输入正确的运算结果");
                $("#CommentValidateImages").attr("src", "ValidateCode.aspx?s=" + Math.random());
            }
            if (json.d == 1) {
                $("#result").removeClass("codevalidate").addClass("green").text("验证正确");
                $('#info1').fadeIn();
                setTimeout(turnto, 3000);
            }
        }
    });


#9


直接用我那上面的格式看可以不

#10


引用 6 楼 sandy945 的回复:
能进到 getprice 方法体内么?

contentType: "application/json;charset=utf-8",

 先去掉


那个断点来看能否进getprice??那个我不会用,设了断点不知道怎么用

#11


引用 6 楼 sandy945 的回复:
能进到 getprice 方法体内么?

contentType: "application/json;charset=utf-8",

 先去掉


去掉了弹出框了,但是弹出的是undefined

#12


dataType:json,
contentType:"application/json;charset=gb2312",
[{"tt":"aa"}] eval(("+jsondata+"))
取数据 for(var j in datas){
datas[j].codeName;
}

#13


contentType: "application/json;charset=utf-8",
dataType: 'json',

去掉两个后success的alert能弹出信息了!!

success:function(result){alert(result.d);}但这个是弹出undefined的

还有就是为什么设为json会没反应的呢??因为以后我想用json来返回大数量的数据的!!

引用 12 楼 happy664618843 的回复:
dataType:json,
contentType:"application/json;charset=gb2312",
[{"tt":"aa"}] eval(("+jsondata+"))
取数据 for(var j in datas){
datas[j].codeName;
}


12楼的朋友你的我没看懂,我的getprice只返回一个值

#14


 decimal result = d.SQL_SP("getprice", parameters);
这里返回出来的是个decimal 数字吧 ?
返回json 一般是datatable or list 拼 json字符串返回 。

#15


        success: function(result) {
            var json = eval('(' + result + ')');
加上这一句  

#16


var json = eval('(' + result + ')');
应该就不会弹出identified了 

#17



success:function(result){
var json = eval('(' + result + ')');
alert(json .d);}
});


改成那个这样,然后试试看

#18


引用 17 楼 specialaspnet 的回复:
JScript code

success:function(result){
var json = eval('(' + result + ')');
alert(json .d);}
});



改成那个这样,然后试试看


弹出语法错误!!!

#19


引用 11 楼 jason87629 的回复:
引用 6 楼 sandy945 的回复:
能进到 getprice 方法体内么?

contentType: "application/json;charset=utf-8",

先去掉


去掉了弹出框了,但是弹出的是undefined


是你的返回格式不是json

需要返回json 格式才可以

eg:

{'d':0.25}

#20


引用 19 楼 sandy945 的回复:
引用 11 楼 jason87629 的回复:
引用 6 楼 sandy945 的回复:
能进到 getprice 方法体内么?

contentType: "application/json;charset=utf-8",

先去掉


去掉了弹出框了,但是弹出的是undefined


是你的返回格式不是json

需要返回json 格式才可以

eg:
{'d':0.25}


??怎样返回json格式??后台cs函数哪里要怎么改??

decimal result = d.SQL_SP("getprice", parameters);
return result.ToString();

我的是这个!!

#21


实在要json就
return  "{\"data\":" + result.ToString(); +"}";
前台
alert(json["data"]);

#22


就是改这个部分

return result.ToString();

=》

return "{'d':'"+result.ToString()+"'}";

#23


然后 

success:function(result){
var json = eval('(' + result + ')');
alert(json .d);}
});

#24


引用 23 楼 sandy945 的回复:
然后 

success:function(result){
var json = eval('(' + result + ')');
alert(json .d);}
});


语法错误

#25


你alert(result) 看看什么值

或者直接 alert(result.d)

#26


引用 25 楼 sandy945 的回复:
你alert(result) 看看什么值

或者直接 alert(result.d)


return result.ToString();
alert(result)这个是弹出网页生成后的代码,就是网页的源代码。
alert(result.d)是弹出undefined。

return "{'d':" + result.ToString() +"}";
alert(result)这个是弹出网页生成后的代码,就是网页的源代码。
alert(result.d)是弹出undefined。

#27


该回复于2011-04-07 17:40:09被版主删除

#28


你用是什么环境? vs05 还是 08

#29


现在的结果是把整个页面都返回来了,但按你之前的代码是不应该出现这个情况的。

你把代码详细的贴一下

#30


我的jquery在官网下的1.51 min版,是这个原因??

哪位朋友可以帮帮忙啊??

可以加下我QQ吗??  QQ:275173487

#31


你用firebug来进行调试,就可以知道错误了。
var sendData = "{'id:'" + x + ",'date:'" + y + ",'stid:'" + z + "}"
id这边的键 必须要跟那个你的cs端参数一样。

#32


首先
返回json的话声明应该是
    [WebMethod(EnableSession = true)]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)]

然后js接受result,aspnet下很奇怪,必须用result.d才是json的主体值

最后,不能用static修饰符

#33


对于想用alert看返回值是什么,最好将 dataType改成text,否则alert出来的应该是object

#34


谢谢你们,我再试试看

#35


ajax 访问的链接后面加个随机数,如js代码的Math.random(),同一个地址访问的话,浏览器发现是同一个地址,就不会重新发出请求。

#36



function aa() {
     $.ajax({
     url: "WebForm1.aspx/gettext",
     type: "post",
     data: "{dd:'123'}",
     success: function(result) {
    
     }
     });
     }


[WebMethod]
public string gettext(string dd)
{
return "{d:'" + dd + "'}";
}

为什么我的连方法体都进不了?(Jquery版本1.4.2)

#37


在select.aspx页面.调用ws后得到的内容是什么
比如string result=调用服务获取;
然后
Response.Write(result);
Response.Flush();
Response.End();

这样就不会获取到整个select.aspx页面的网页代码了.而是获取到的数据...

然后再去看获取到的数值是否正确

由于你获取的结果是json.但是你的getprice返回是string...所以在select.aspx中仍需要将结果进行修改.生成json字串.像#22那样

#38


引用 37 楼 luoweihua7 的回复:
在select.aspx页面.调用ws后得到的内容是什么
比如string result=调用服务获取;
然后
Response.Write(result);
Response.Flush();
Response.End();

这样就不会获取到整个select.aspx页面的网页代码了.而是获取到的数据...

然后再去看获取到的数值是否正确

由于你获取的结果是json.但是你的getprice返回是string...所以在select.aspx中仍需要将结果进行修改.生成json字串.像#22那样


decimal result = d.SQL_SP("getprice", parameters);//得到一个数字,就是价钱
return "{'d':'" + result.ToString() + "'}";
Response.Write("{'d':'" + result.ToString() + "'}");
Response.Flush();
Response.End();

这样??
alert(result)这个是弹出网页生成后的代码,就是网页的源代码。
alert(result.d)是弹出undefined

一样啊!!究竟是什么问题啊??弄了我几天时间了!!

#39


该回复于2011-04-08 15:31:45被版主删除

#41


引用 40 楼 sandy945 的回复:
http://topic.csdn.net/u/20090801/14/3961f8c1-24c9-4324-acb0-7b7feb353246.html

以前写的一个例子


你的例子在vs05可以用??

#42


在vs 08中可用

在05中需要更改配置文件

<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

在httpModules 中加上上面的  在此之前 你要先下载 System.Web.Extensions.dll 并在项目中引用

#43


引用 42 楼 sandy945 的回复:
在vs 08中可用

在05中需要更改配置文件

<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

在httpModule……


httpModule上加??在哪里的?
不是在web.config上的<assemblies></assemblies>之间加??

#44


<assemblies>
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>

我的web.config有这个,System.Web.Extensions.dll和我的有关系?还有我在网上搜了貌似找不到下载地址,请问你可以提供一下吗??

#46


未能加载文件或程序集“System.Web.Extensions”或它的某一个依赖项。生成此程序集的运行库比当前加载的运行库新,无法加载此程序集。

咋办??

#47


引用 2 楼 sandy945 的回复:
var sendData = "{id:'" + x + "',date:'" + y + "',stid:'" + z + "'}";

public static string getprice (string busid, string busdate, string stid)
命名要一致

var sendData = "{id:'" + x + "',date:'" + ……

顶。

#48


引用 47 楼 kingdom_0 的回复:
引用 2 楼 sandy945 的回复:

var sendData = "{id:'" + x + "',date:'" + y + "',stid:'" + z + "'}";

public static string getprice (string busid, string busdate, string stid)
命名要一致

var sendData = "{id……


说了我的代码是一致的,只是发上来的时候忘记修改了

#49


该回复于2011-04-11 10:35:14被版主删除

#50


你机器上装的什么环境 framework 几?

#1


public static string getprice(……)static ?去掉static 试试

#2


var sendData = "{id:'" + x + "',date:'" + y + "',stid:'" + z + "'}";

public static string getprice (string busid, string busdate, string stid)
命名要一致

var sendData = "{id:'" + x + "',date:'" + y + "',stid:'" + z + "'}";
public static string getprice (string id, string date, string stid)

#3


引用 2 楼 sandy945 的回复:
var sendData = "{id:'" + x + "',date:'" + y + "',stid:'" + z + "'}";

public static string getprice (string busid, string busdate, string stid)
命名要一致

var sendData = "{id:'" + x + "',date:'" + y……


那个是一致的,我发上来时没修改而已

#4


该回复于2011-04-07 16:16:49被版主删除

#5



dataType: 'json',

去掉看看 。dataType是预期返回的数据类型 。
result 能弹出吗 ?

#6


能进到 getprice 方法体内么?

contentType: "application/json;charset=utf-8",

 先去掉

#7


#8


url:"select.aspx/getprice"首页这个路径有没有错

    $.ajax({
        type: "post",
        contentType: "application/json; charset=utf-8",
        url: "/WebService/User.asmx/UserRegist",
        data: "{'u_name':'" + username + "','u_email':'" + useremail + "','u_pwd':'" + userpwd + "','u_validate':'" + uservalidate + "'}",
        success: function(result) {
            var json = eval('(' + result + ')');
            if (json.d == 0) {
                $("#result").removeClass("green").addClass("codevalidate").text("请输入正确的运算结果");
                $("#CommentValidateImages").attr("src", "ValidateCode.aspx?s=" + Math.random());
            }
            if (json.d == 1) {
                $("#result").removeClass("codevalidate").addClass("green").text("验证正确");
                $('#info1').fadeIn();
                setTimeout(turnto, 3000);
            }
        }
    });


#9


直接用我那上面的格式看可以不

#10


引用 6 楼 sandy945 的回复:
能进到 getprice 方法体内么?

contentType: "application/json;charset=utf-8",

 先去掉


那个断点来看能否进getprice??那个我不会用,设了断点不知道怎么用

#11


引用 6 楼 sandy945 的回复:
能进到 getprice 方法体内么?

contentType: "application/json;charset=utf-8",

 先去掉


去掉了弹出框了,但是弹出的是undefined

#12


dataType:json,
contentType:"application/json;charset=gb2312",
[{"tt":"aa"}] eval(("+jsondata+"))
取数据 for(var j in datas){
datas[j].codeName;
}

#13


contentType: "application/json;charset=utf-8",
dataType: 'json',

去掉两个后success的alert能弹出信息了!!

success:function(result){alert(result.d);}但这个是弹出undefined的

还有就是为什么设为json会没反应的呢??因为以后我想用json来返回大数量的数据的!!

引用 12 楼 happy664618843 的回复:
dataType:json,
contentType:"application/json;charset=gb2312",
[{"tt":"aa"}] eval(("+jsondata+"))
取数据 for(var j in datas){
datas[j].codeName;
}


12楼的朋友你的我没看懂,我的getprice只返回一个值

#14


 decimal result = d.SQL_SP("getprice", parameters);
这里返回出来的是个decimal 数字吧 ?
返回json 一般是datatable or list 拼 json字符串返回 。

#15


        success: function(result) {
            var json = eval('(' + result + ')');
加上这一句  

#16


var json = eval('(' + result + ')');
应该就不会弹出identified了 

#17



success:function(result){
var json = eval('(' + result + ')');
alert(json .d);}
});


改成那个这样,然后试试看

#18


引用 17 楼 specialaspnet 的回复:
JScript code

success:function(result){
var json = eval('(' + result + ')');
alert(json .d);}
});



改成那个这样,然后试试看


弹出语法错误!!!

#19


引用 11 楼 jason87629 的回复:
引用 6 楼 sandy945 的回复:
能进到 getprice 方法体内么?

contentType: "application/json;charset=utf-8",

先去掉


去掉了弹出框了,但是弹出的是undefined


是你的返回格式不是json

需要返回json 格式才可以

eg:

{'d':0.25}

#20


引用 19 楼 sandy945 的回复:
引用 11 楼 jason87629 的回复:
引用 6 楼 sandy945 的回复:
能进到 getprice 方法体内么?

contentType: "application/json;charset=utf-8",

先去掉


去掉了弹出框了,但是弹出的是undefined


是你的返回格式不是json

需要返回json 格式才可以

eg:
{'d':0.25}


??怎样返回json格式??后台cs函数哪里要怎么改??

decimal result = d.SQL_SP("getprice", parameters);
return result.ToString();

我的是这个!!

#21


实在要json就
return  "{\"data\":" + result.ToString(); +"}";
前台
alert(json["data"]);

#22


就是改这个部分

return result.ToString();

=》

return "{'d':'"+result.ToString()+"'}";

#23


然后 

success:function(result){
var json = eval('(' + result + ')');
alert(json .d);}
});

#24


引用 23 楼 sandy945 的回复:
然后 

success:function(result){
var json = eval('(' + result + ')');
alert(json .d);}
});


语法错误

#25


你alert(result) 看看什么值

或者直接 alert(result.d)

#26


引用 25 楼 sandy945 的回复:
你alert(result) 看看什么值

或者直接 alert(result.d)


return result.ToString();
alert(result)这个是弹出网页生成后的代码,就是网页的源代码。
alert(result.d)是弹出undefined。

return "{'d':" + result.ToString() +"}";
alert(result)这个是弹出网页生成后的代码,就是网页的源代码。
alert(result.d)是弹出undefined。

#27


该回复于2011-04-07 17:40:09被版主删除

#28


你用是什么环境? vs05 还是 08

#29


现在的结果是把整个页面都返回来了,但按你之前的代码是不应该出现这个情况的。

你把代码详细的贴一下

#30


我的jquery在官网下的1.51 min版,是这个原因??

哪位朋友可以帮帮忙啊??

可以加下我QQ吗??  QQ:275173487

#31


你用firebug来进行调试,就可以知道错误了。
var sendData = "{'id:'" + x + ",'date:'" + y + ",'stid:'" + z + "}"
id这边的键 必须要跟那个你的cs端参数一样。

#32


首先
返回json的话声明应该是
    [WebMethod(EnableSession = true)]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)]

然后js接受result,aspnet下很奇怪,必须用result.d才是json的主体值

最后,不能用static修饰符

#33


对于想用alert看返回值是什么,最好将 dataType改成text,否则alert出来的应该是object

#34


谢谢你们,我再试试看

#35


ajax 访问的链接后面加个随机数,如js代码的Math.random(),同一个地址访问的话,浏览器发现是同一个地址,就不会重新发出请求。

#36



function aa() {
     $.ajax({
     url: "WebForm1.aspx/gettext",
     type: "post",
     data: "{dd:'123'}",
     success: function(result) {
    
     }
     });
     }


[WebMethod]
public string gettext(string dd)
{
return "{d:'" + dd + "'}";
}

为什么我的连方法体都进不了?(Jquery版本1.4.2)

#37


在select.aspx页面.调用ws后得到的内容是什么
比如string result=调用服务获取;
然后
Response.Write(result);
Response.Flush();
Response.End();

这样就不会获取到整个select.aspx页面的网页代码了.而是获取到的数据...

然后再去看获取到的数值是否正确

由于你获取的结果是json.但是你的getprice返回是string...所以在select.aspx中仍需要将结果进行修改.生成json字串.像#22那样

#38


引用 37 楼 luoweihua7 的回复:
在select.aspx页面.调用ws后得到的内容是什么
比如string result=调用服务获取;
然后
Response.Write(result);
Response.Flush();
Response.End();

这样就不会获取到整个select.aspx页面的网页代码了.而是获取到的数据...

然后再去看获取到的数值是否正确

由于你获取的结果是json.但是你的getprice返回是string...所以在select.aspx中仍需要将结果进行修改.生成json字串.像#22那样


decimal result = d.SQL_SP("getprice", parameters);//得到一个数字,就是价钱
return "{'d':'" + result.ToString() + "'}";
Response.Write("{'d':'" + result.ToString() + "'}");
Response.Flush();
Response.End();

这样??
alert(result)这个是弹出网页生成后的代码,就是网页的源代码。
alert(result.d)是弹出undefined

一样啊!!究竟是什么问题啊??弄了我几天时间了!!

#39


该回复于2011-04-08 15:31:45被版主删除

#40


#41


引用 40 楼 sandy945 的回复:
http://topic.csdn.net/u/20090801/14/3961f8c1-24c9-4324-acb0-7b7feb353246.html

以前写的一个例子


你的例子在vs05可以用??

#42


在vs 08中可用

在05中需要更改配置文件

<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

在httpModules 中加上上面的  在此之前 你要先下载 System.Web.Extensions.dll 并在项目中引用

#43


引用 42 楼 sandy945 的回复:
在vs 08中可用

在05中需要更改配置文件

<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

在httpModule……


httpModule上加??在哪里的?
不是在web.config上的<assemblies></assemblies>之间加??

#44


<assemblies>
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>

我的web.config有这个,System.Web.Extensions.dll和我的有关系?还有我在网上搜了貌似找不到下载地址,请问你可以提供一下吗??

#45


#46


未能加载文件或程序集“System.Web.Extensions”或它的某一个依赖项。生成此程序集的运行库比当前加载的运行库新,无法加载此程序集。

咋办??

#47


引用 2 楼 sandy945 的回复:
var sendData = "{id:'" + x + "',date:'" + y + "',stid:'" + z + "'}";

public static string getprice (string busid, string busdate, string stid)
命名要一致

var sendData = "{id:'" + x + "',date:'" + ……

顶。

#48


引用 47 楼 kingdom_0 的回复:
引用 2 楼 sandy945 的回复:

var sendData = "{id:'" + x + "',date:'" + y + "',stid:'" + z + "'}";

public static string getprice (string busid, string busdate, string stid)
命名要一致

var sendData = "{id……


说了我的代码是一致的,只是发上来的时候忘记修改了

#49


该回复于2011-04-11 10:35:14被版主删除

#50


你机器上装的什么环境 framework 几?