none
jQuery.ajax传参,接受页面却收到两个相同的参数 RRS feed

  • 问题

  • jQuery.ajax传参,接受页面却收到两个相同的参数:
    我是通过一个Login.html的登录页面,登陆后显示这个用户的个人信息。

    在Login.html页面中使用jQuery.ajax进行了用户名和密码的验证,传参的名称是UserName=...$UserPwd=...。
    然后进入第二个页面UserDetail.html,我需要用传过来的UserName使用jQuery.ajax得到用户的信息进行显示。

    后台获得UserName参数值的方式是:
    case "GetUserInfo":
        userName = context.Request.Params["UserName"];
        response = this.GetUserInfo(userName);
        break;
    default: break;

    就是这样,可我查看userName的变量值显示的却是123123,123123
    我看了看Params的内容,如下:
    {Action=GetUserInfo&UserName=123123&UserName=123123&_=1261450074984&CheckCode=8D582N&ALL_HTTP=HTTP_CONNECTION%3aKeep-Alive%0d%0aHTTP_ACCEPT%3atext%2fplain%2c+*%2f*%0d%0aHTTP_ACCEPT_ENCODING%3agzip%2........
    也就是说从UserDetail.html的ajax方法传过来两个UserName,而且二者的值相同。

    但是这样我就不能使用context.Request.Params["UserName"]获得userName的值了。
    如果我把参数的名称改为UserName2,就没有问题了。
    但是这是为什么?为什么会有两个UserName?
    我觉得是Ajax方法造成这样的。


    Do My Best
    2009年12月22日 3:33

答案

全部回复

  • 因为你写了两个相同的参数名称 

    2009年12月22日 11:08
  • 我虽然是写了两个相同的,但两个名称我写在了两个页面的两个方法中。为什么还会出现这个情况啊?


    Do My Best
    2009年12月23日 1:08
  • 哦。我明白了,Params是获取 QueryString、Form、ServerVariables 和 Cookies 项的组合集合。
    因为前面我用了一个名称为UserName的Cookie,所以会查到两个UserName。一个是QueryString的,一个Cookie的。
    应该用QueryString,或直接用Request。
    谢谢mldark。开始没理解您的话。
    Do My Best
    2009年12月23日 1:30