使用标题信息重定向到另一个站点Javascript

时间:2012-10-12 15:35:48

标签: javascript asp.net

我试图让客户端点击并重定向到添加了标题信息的另一个站点,我的客户端代码是onclick:

function selectApp(appGUID, userId ,embedUrl)
{
    if(embedUrl==="")
    {
        var success = setAppGUID(appGUID);
        window.location.replace('AppDetail.aspx');
    }
    else
    {   
        $.ajax({
            type: "POST",
            url: embedUrl,
            contentType: "text/html",
            beforeSend: function (xhr, settings) {
                xhr.setRequestHeader("UserId", userId);
            },
            success: function (msg) {
                //actually redirect to the site
                window.location.replace(embedUrl);
            }
        });
    }  
}

embedUrl中的服务器端代码是

protected void Page_Load(object sender, EventArgs e)
{
    string isSet = (String)HttpContext.Current.Session["saveUserID"];
    if (String.IsNullOrEmpty(isSet))
    {
        NameValueCollection headers = base.Request.Headers;
        for (int i = 0; i < headers.Count; i++)
        {
            if (headers.GetKey(i).Equals("UserId"))
            {
                HttpContext.Current.Session["saveUserID"] = headers.Get(i);
            }
        }
    }
    else
    {
        TextBox1.Text = HttpContext.Current.Session["saveUserID"].ToString();
    }
}

这似乎有效但不太优雅。有没有办法重定向标题数据?没有(我正在做什么)在会话变量中保存标题信息,然后在2个单独的部分中进行重定向。

1 个答案:

答案 0 :(得分:0)

您可以实现页面方法并向其发布数据。 在该方法中移动当前逻辑。

请参阅以下示例:

成功发布后,您可以重定向到当前实施的其他页面。

修改:尝试以下内容:

1)在Code behind

中添加Web方法
  [WebMethod]
  public static string SaveUserId(string userId)
  {
    string sessionUserId= (string)HttpContext.Current.Session["saveUserID"];
    if (string.IsNullOrEmpty(sessionUserId))
      HttpContext.Current.Session["saveUserID"] = userId;
    else
      TextBox1.Text = sessionUserId;
  }

2)从JS <​​/ p>调用它

 //Add here code before..
 $.ajax({
                url: "PageName.aspx/SaveUserId",
                data: "{'userid':" + userid + "}",
                contentType: "application/json; charset=utf-8",
                dataType: "json"
                success: function (msg) {
                    //actually redirect to the site
                    window.location.replace(embedUrl);
                }
            });

有关使用jQuery调用Page方法的更多信息: