jq中的ajax的返回值怎么接收啊?

爱在今世 2013-03-21 04:03:32
<script type="text/javascript">
$(document).ready(function () {
$("#Llogin").click(function () {
$.ajax({
type: "post",
url: "../Ashx/login.ashx/Getjieguo",
datatype: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
alert(data);
}
});
});
});
</script>

login.ashx页面:
[WebMethod]
public static string Getjieguo()
{
return "实验!";
}

为什么返回的结果永远是空呢?求指点!
...全文
2808 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
心晴623 2013-03-25
  • 打赏
  • 举报
回复
额 ajax的 跨域访问
心晴623 2013-03-25
  • 打赏
  • 举报
回复
jq的ajax请求webservice的话,考虑下是否是垮与访问的原因了
SinGooCMS 2013-03-22
  • 打赏
  • 举报
回复
public void ProcessRequest(HttpContext context) 中输出 Response.write("xxx") 而不是return. 如果是webservice.你也写错了
yajore 2013-03-22
  • 打赏
  • 举报
回复
我也研究过一段时间的jq的ajax请求webservice,还是成功的,也碰到过楼主哪些问题,我归结了几点,仅供参考: 首先你要确定你请求的方法是否被后台接收到,没有的话,检查你的url路径是否正确 webconfig 加上 <system.web> <webServices> <protocols> <add name="HttpPost"/> <add name="HttpGet"/> </protocols> </webServices> </system.web> 再试试(注意缓存,建议重新生成一下) 还有我测试的时候,貌似后台的方法不能用静态,你去掉static试试 (其实你还没尝试有参方法,给你看个我写的例子)
 
        var obj = { "UName": uname, "UPwd": md_key };
        var query = Common.ToJson(obj);
        $.ajax({
            url: "/Huanme/WebService/relogin.asmx/GetUser",
            type: "POST",
            contentType: "application/json; charset=utf-8",
            data: "{'queryString':'" + query + "'}",
            dataType: "json",
            success: function (msg) {
                if (msg.d != null && msg.d.SysNo > 0) {
                   //TODO
                } else {
                    messagebox.html("用户名或密码错误.");
                    $("#btnSubmit").attr("disabled", false).val("登录");
                }
            },
            error: function (alt) {
                messagebox.html("请求服务器失败.");
            }
        });

public class relogin : System.Web.Services.WebService
    {

        [WebMethod]
        public UserEntity GetUser(string queryString)
        {
            UserQueryEntity query = JsonHelper.ParseFormJson<UserQueryEntity>(queryString);
            UserEntity entity = UserBP.GetUser(query);
            //return new UserEntity { SysNo = 1 };
            return entity;
        }
我是老姚 2013-03-21
  • 打赏
  • 举报
回复
引用 23 楼 showyusy 的回复:
晕了,新的问题又冒出来了,我在前台ajax里面写了C# code?1data: "{username:" + $(<%=Tusername.ClientID%>).val() + ",password:" + $(<%=Tpassword.ClientID%>).val() + ",code:" + $(<%=Tcode.ClientID%>).val() + "}",,……
JQUERY通过这种方式提交数据应该是没有问题的。你检查一下提交的数据是不是正确的数据,可以使用浏览器的开发人员工具进行监测
我是老姚 2013-03-21
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/aley/2608273 http://download.csdn.net/detail/aley/2608278 给你两个例子你下载研究研究
爱在今世 2013-03-21
  • 打赏
  • 举报
回复
引用 18 楼 aley 的回复:
using System; using System.Web; using System.Web.Services; using System.Data; using System.Web.SessionState; public class login : IHttpHandler, IRequiresSessionState { pu……
求指点23楼的问题
爱在今世 2013-03-21
  • 打赏
  • 举报
回复
晕了,新的问题又冒出来了,我在前台ajax里面写了
data: "{username:" + $(<%=Tusername.ClientID%>).val() + ",password:" + $(<%=Tpassword.ClientID%>).val() + ",code:" + $(<%=Tcode.ClientID%>).val() + "}",
,ashx该怎么接收啊?context.Request.Form["username"]这招好像有点不管用啊。
爱在今世 2013-03-21
  • 打赏
  • 举报
回复
引用 18 楼 aley 的回复:
using System; using System.Web; using System.Web.Services; using System.Data; using System.Web.SessionState; public class login : IHttpHandler, IRequiresSessionState { pu……
引用 19 楼 aley 的回复:
提交页面的地址写成这个:"../Ashx/login.ashx 你原来的写法是访问WebService的用法。 ashx这种方法是直接进行http请求的处理。要用请求和响应对象来进行处理。
你果然是大牛!按照你的方法果然搞定。
Jdragon 2013-03-21
  • 打赏
  • 举报
回复
url: "../Ashx/login.ashx/Getjieguo", 没有这么写的吧 改 url: "../Ashx/login.ashx 然后 public void ProcessRequest(HttpContext context) { GetStuList(context); } public static string Getjieguo(HttpContext context) { context.Response.ContentType = "text/plain"; context.Response.Write("实验!"); } 改成这样 试试?
天下如山 2013-03-21
  • 打赏
  • 举报
回复
我试了下 用ashx确实不行 就用楼上的方法吧 写在ProcessRequest里面
我是老姚 2013-03-21
  • 打赏
  • 举报
回复
提交页面的地址写成这个:"../Ashx/login.ashx 你原来的写法是访问WebService的用法。 ashx这种方法是直接进行http请求的处理。要用请求和响应对象来进行处理。
我是老姚 2013-03-21
  • 打赏
  • 举报
回复
using System; using System.Web; using System.Web.Services; using System.Data; using System.Web.SessionState; public class login : IHttpHandler, IRequiresSessionState { public void ProcessRequest(HttpContext context) { string ss = "实验!"; context.Response.Write(ss); context.Response.End(); } public bool IsReusable { get { return false; } } [WebMethod] public static string Getjieguo() { } }
爱在今世 2013-03-21
  • 打赏
  • 举报
回复
引用 14 楼 sibiyellow 的回复:
确定了没有进入WEBService方法那么 查看 1、你的net版本是2.0以上版本么?如果你的版本是2.0的那么请别使用WEBSERVICES方法来ajax 2、确定你的地址正确不正确(即ajax的提交页面地址) 3、datatype: "json",---改为text
我的.net版本是4.0 物理地址是网站根目录下Ashx目录里的login.ashx。我提交页面写的是url: "../Ashx/login.ashx/Getjieguo" datatype干脆直接删掉了。但是永恒是空啊。。。。
zj25810 2013-03-21
  • 打赏
  • 举报
回复
天下如山 2013-03-21
  • 打赏
  • 举报
回复
引用 13 楼 showyusy 的回复:
引用 12 楼 zj25810 的回复:静态... 你的login.ashx只要有一个地方有错误,ajax都进不来。如果真的是触发不了方法,建议你在login.ashx里先排错,看是不是哪个地方有点小错误C# code?123456789101112131415161718192021222324252627282930<%@ WebHandler Langua……
汗 那你出错的是.net版本的吧!
天下如山 2013-03-21
  • 打赏
  • 举报
回复
确定了没有进入WEBService方法那么 查看 1、你的net版本是2.0以上版本么?如果你的版本是2.0的那么请别使用WEBSERVICES方法来ajax 2、确定你的地址正确不正确(即ajax的提交页面地址) 3、datatype: "json",---改为text
爱在今世 2013-03-21
  • 打赏
  • 举报
回复
引用 12 楼 zj25810 的回复:
静态... 你的login.ashx只要有一个地方有错误,ajax都进不来。如果真的是触发不了方法,建议你在login.ashx里先排错,看是不是哪个地方有点小错误
<%@ WebHandler Language="C#" Class="login" %>

using System;
using System.Web;
using System.Web.Services;
using System.Data;
using System.Web.SessionState;

public class login : IHttpHandler, IRequiresSessionState
{

    public void ProcessRequest(HttpContext context)
    {
        
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
    [WebMethod]
    public static string Getjieguo()
    {
        string ss = "实验!";
        return ss;
    }
}
这是完整的代码。我用VS2012运行的,没有报错。。。。
zj25810 2013-03-21
  • 打赏
  • 举报
回复
静态... 你的login.ashx只要有一个地方有错误,ajax都进不来。如果真的是触发不了方法,建议你在login.ashx里先排错,看是不是哪个地方有点小错误
爱在今世 2013-03-21
  • 打赏
  • 举报
回复
引用 9 楼 zj25810 的回复:
你说的返回为空,是不是alert的那个值是空?
对就是alert里面是空。
引用 10 楼 zj25810 的回复:
调试能不能跳进login.ashx的Getjieguo方法?如果不能,那就是login.ashx里面有错误
而且断点截不到login.ashx的Getjieguo方法。可是login.ashx里面只多了一个
[WebMethod]
    public static string Getjieguo()
    {
        return "实验!";
    }
应该没有错误吧
加载更多回复(10)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧