작업 과정에서 JS가 쿠키에서 값을 얻어야 하는 필요성에 직면했습니다. JS가 쿠키에서 해당 값을 얻기 위해 키 값을 지정하는 기성 방법이 없는 것 같습니다. 인터넷에 있는 코드는 다음과 같습니다.
1. 서버 측 코드, Page_Load의 쿠키에 여러 값을 작성합니다
using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebApplication_TestJS { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Response.Cookies["DONO"].Value = "EDO1406300001"; Response.Cookies["DOID"].Value = "ABCDEFG123456"; Response.Cookies["DOSOURCE"].Value = "WUWUWUWU"; Response.Cookies["DOTYPE"].Value = "2"; } } }
2. 클라이언트 코드, 페이지에 버튼 및 텍스트 상자 추가, 얻은 값을 트리거하고 출력하는 데 사용
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication_TestJS._Default" %> <html> <script language="javascript" type="text/javascript"> function GetCookie() { /*获取Cookies里面存放信息 了解其字符串结构*/ var Cookies = document.cookie; document.getElementById("<%=txtContent.ClientID%>").innerText = Cookies; /*处理字符串截取出来需要的目标值*/ var target = "DONO" + "="; if (document.cookie.length > 0) { start = document.cookie.indexOf(target); if (start != -1) { start += target.length; end = document.cookie.indexOf(";", start); if (end == -1) end = document.cookie.length; } } /*目标值赋值给控件*/ document.getElementById("<%=txtTarget.ClientID%>").innerText = document.cookie.substring(start, end); } </script> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Button ID="btnGetReq" runat="server" Text="获取内容" OnClientClick="GetCookie()" /> <br /> <asp:TextBox ID="txtContent" runat="server" Columns="120"></asp:TextBox> <br /> <asp:TextBox ID="txtTarget" runat="server" Columns="120"></asp:TextBox> </div> </form> </body> </html>
3. 실행 결과를 보면 Cookies가 첫 번째 텍스트 상자에 저장된 구조임을 알 수 있으며 필요에 따라 해당 문자열을 가로챌 수 있습니다