如题,用ajax连接后台,前台的参数一直传不到后台,请大佬们帮忙分析一下是哪里出现了问题;
前台ajax代码,这里的alter()都能执行成功后台cs代码

解决方案 »

  1.   

    不能在Page_Load里面处理
    因为ajax Post本身是非刷新式提交,并不会重新加载页面你后台还是要弄一个api来处理这个请求(比如用ashx)
      

  2.   

    大佬,不能通过cs来写吗?我是看到网上好多都是直接在cs里进行后台处理ajax请求,写在cs上的
      

  3.   

    大佬,不能通过cs来写吗?我是看到网上好多都是直接在cs里进行后台处理ajax请求,写在cs上的
    是可以
    但是不能在Page_Load方法里处理
      

  4.   

    比如在cs文件里写一个
    [WebMethod]
    string Register(参数){}前台可以用 url+"/Register" 这个地址来post
      

  5.   

    这样写的Ajax,是传递不了参数的。建议写一个ashx
    比如这样
    $.ajax({
                type:'post',
                url: 'Register.ashx',
                data: { XXX: XXX },
                success: function(json){
                  //回调函数
               }
      

  6.   

    https://blog.csdn.net/liuzhen917/article/details/8101444参考一下
      

  7.   

    ajax 访问 ashx  就可以了。花巨大代价创建一个 Page 是谁教你的呢?
      

  8.   

    大佬,不能通过cs来写吗?我是看到网上好多都是直接在cs里进行后台处理ajax请求,写在cs上的每一套复杂的机制都有其自己的运行套路。但凡正规学 asp.net 的都应该始终(至少1、2年)围绕 asp.net 的页面生命周期的各种事件、各种接口、各种操作而入门。过去有的人写博客、对“页面生命周期”完全不懂却空谈“cs”这就害人了。不同层级的 asp.net 对象有不同的机制,不同的生命周期适用方法。
      

  9.   

    这里其实并不是 Request.Form[....] 能不能解析一些 post 数据的问题,而是 asp.net 的耗费巨大代价而创建的复杂页面对象的机制问题。创建巨大的代价仅仅为了完成 ashx 自定义封装 json 对象或者是 webapi 解析参数的一样的简单功能?这就好像是让你用火车当自行车使,这样的人教你 asp.net 一定是糊弄你一时的。
      

  10.   

    大佬,不能通过cs来写吗?我是看到网上好多都是直接在cs里进行后台处理ajax请求,写在cs上的每一套复杂的机制都有其自己的运行套路。但凡正规学 asp.net 的都应该始终(至少1、2年)围绕 asp.net 的页面生命周期的各种事件、各种接口、各种操作而入门。过去有的人写博客、对“页面生命周期”完全不懂却空谈“cs”这就害人了。不同层级的 asp.net 对象有不同的机制,不同的生命周期适用方法。
    学到了。之前一直是用控件事件来写后台,第一次用ajax,还在看别人的贴子学习。
      

  11.   

    大佬,之前没有接触过ashx,看了别人的贴子写了一个,好像还是没有成功,请大佬帮忙分析一下
    ashx代码ajax代码
      

  12.   

    在Page_Load加个判断,  if (!IsPostBack){   //你接收的代码就可以接收到值了   }
      

  13.   


    尝试了一下,还是不行  
    看着这个写吧,我刚从项目里复制过来的
    if (!IsPostBack)
                {                if (!string.IsNullOrEmpty(Request["action"]) && !string.IsNullOrEmpty(Request["memberid"]) && !string.IsNullOrEmpty(Request["custsource"]))
                    {
                        try
                        {                        Response.Write(LoginAndSiteToUrl(Convert.ToInt32(Request["memberid"]), Request["custsource"].ToString()));
                            Response.End();
                            return;
                        }
                        catch (Exception) { }
                    }}
      

  14.   

    你的返回值有问题,不能直接返回js,你这样写等于说最后接收的是"<script>alert('传值成功')</script>"这个字符串,看请求是否成功不是你这样弄的
      

  15.   

    尝试了一下,还是不行  
    看着这个写吧,我刚从项目里复制过来的
    if (!IsPostBack)
                {                if (!string.IsNullOrEmpty(Request["action"]) && !string.IsNullOrEmpty(Request["memberid"]) && !string.IsNullOrEmpty(Request["custsource"]))
                    {
                        try
                        {                        Response.Write(LoginAndSiteToUrl(Convert.ToInt32(Request["memberid"]), Request["custsource"].ToString()));
                            Response.End();
                            return;
                        }
                        catch (Exception) { }
                    }}按照这个写,还是没有效果
      

  16.   

    改成response.write(requset["userid"].tostring())?
      

  17.   

     if (IsPostBack)
                {
                    string dd = Request.Form["user"].ToString();
                }
    这样试试吧,应该没问题。
      

  18.   

    为了你的奇葩问题,专门试了一下,页面ajax请求自身页面
    目测可以取得数据
        <script>
            $.ajax({
                type: "post",
                url: "test.aspx",
                async: "false",
                data: { "user": "123123" },
                success:function(data){
                    alert(data);
                 }
            });
        </script> if (Request.Form["user"]!=null)
                {
                    string dd = Request.Form["user"].ToString();
                    Response.Write(dd);
                }
    这玩意真的是你想要的东西?
      

  19.   

    自己是可以访问自己后台的。     但是通常没人这么写,  如果不想用 aspx后台, 就访问ashx,   或者2个页面之间传参数,  A页面调用B页面的ASPX。   如果A 直接调用A后台,  在FORM里 写个POST 或者 GET  就可以了, 不用独立写 AJAX
      

  20.   

    如果ajax请求少,只有一两个请求,又不想创建一个ashx来处理时,可以直接让ajax可以直接post到.cs代码中处理,但是有四处要特别注意不然会出错的,第一、post的数据一定是json格式的字符串,字符串,字符串。第二、要设置contentType:"application/json; charset=utf-8"。第三、后台代码方法要加上[WebMethod]关键字。第四、返回json数据时,数据是放在d中的。建议测试通过后把ajax封装下,不然下次你还会出错的
      

  21.   

    你要是新学,用ajax了,应该也前后端分离了吧,那还不如直接用mvc模式呢,参数获取返回值设置少了很多很多事情。