【问题标题】:Ajax call to .Net and sending cookie backAjax 调用 .Net 并返回 cookie
【发布时间】:2012-08-10 15:21:46
【问题描述】:

我正在从 html 页面(移动设备)向 .net 服务器进行 ajax 调用以进行登录和身份验证。现在我正在发送一个带有成功的 JSON 响应:true。这一切都很好,但我需要设置 cookie,以便在登录后进行其他调用以记录数据时记住用户。

我阅读了有关使用 JSONP 的信息,但如果我不必这样做,我宁愿不走那条路,因为这意味着要改变很多。我只想在响应中发回 cookie 并在客户端手动设置它。

如何在 .net 中的服务器端检索此 cookie(或创建 cookie?”并在响应中发回?

【问题讨论】:

    标签: c# jquery .net


    【解决方案1】:

    在你的successajax事件中,你可以在客户端设置cookie

    假设你的JSON 是这样的

      {    "success": "true",    "username": "scott"   }
    

    在你的 ajax 函数中,检查 JSON,如果成功项的值为 true,则设置 cookie。

    $.ajax({
            url: "someserverpage.aspx",
            success: function(data) {
               if(data.success=="true")
               {
                  SetCookie("YoursiteUsername",data.username,365);                   
               }
            }
    });
    

    SetCookie 函数设置 cookie。

    function SetCookie(c_name,value,exdays)
    {
      var exdate=new Date();
      exdate.setDate(exdate.getDate() + exdays);
      var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
      document.cookie=c_name + "=" + c_value;
    }
    

    【讨论】:

    • 好的,我试过了,但是当我随后调用其他函数来记录数据(需要用户身份验证)时,无法识别用户。还有什么可以做的吗?
    • 您必须为此读取 cookie 值。这只是设置cookie。
    【解决方案2】:

    您可以在检测到您的 success:true 响应后使用 javascript 设置 cookie 客户端。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-01
      • 2014-02-11
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 2020-09-23
      • 1970-01-01
      • 2012-01-08
      相关资源
      最近更新 更多