JavaScript를 사용하여 세션을 만드는 방법은 무엇입니까?
에서 을 만드는 JavaScript
?
저는 다음과 같이 노력합니다.
<script type="text/javascript" >
{
Session["controlID"] ="This is my session";
}
</script>
세션을 찾는 이유
AJAX를 사용하여 XML을 요청합니다. XML 응답을 세션에 저장하고 이 세션을 서버 페이지(.asp)에 전달합니다.제 말은 다음과 같은 것을 쓰자는 것입니다.
<% response.write session("MySession")%>
쿠키에 문자열 정보를 저장하고 읽을 수 있습니다.
서버에서 오는 세션 ID인 경우, 서버는 이 쿠키를 생성할 수 있습니다.그리고 다른 요청이 서버로 전송될 때 쿠키도 올 것입니다.브라우저에서 아무것도 하지 않아도 됩니다.
그러나 세션 ID를 생성하는 것이 Javascript인 경우.다음과 같은 기능을 사용하여 Javascript로 쿠키를 만들 수 있습니다.
function writeCookie(name,value,days) {
var date, expires;
if (days) {
date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
expires = "; expires=" + date.toGMTString();
}else{
expires = "";
}
document.cookie = name + "=" + value + expires + "; path=/";
}
그런 다음 각 페이지에서 다음과 같은 기능으로 쿠키를 읽을 수 있는 세션 ID가 필요합니다.
function readCookie(name) {
var i, c, ca, nameEQ = name + "=";
ca = document.cookie.split(';');
for(i=0;i < ca.length;i++) {
c = ca[i];
while (c.charAt(0)==' ') {
c = c.substring(1,c.length);
}
if (c.indexOf(nameEQ) == 0) {
return c.substring(nameEQ.length,c.length);
}
}
return '';
}
쿠키가 Javascript의 페이지에서 작성된 경우 또는 서버에서 작성된 경우, 해당 쿠키를 작성한 동일한 도메인의 페이지 또는 탭에서 읽기 기능이 작동합니다.
ID 저장하기
var sId = 's234543245';
writeCookie('sessionId', sId, 3);
ID 읽기:
var sId = readCookie('sessionId')
로컬 저장소를 사용할 수 있습니다.
로컬 스토리지가 세션과 동일합니다.브라우저를 닫으면 데이터가 제거됩니다.
<script>
localStorage.setItem('lastname','Smith');
alert(localStorage.getItem('lastname'));
</script>
편집: @Naven comment 아래가 맞습니다.대신 세션 저장소를 사용할 수 있습니다.(https://www.w3schools.com/jsref/prop_win_sessionstorage.asp) 감사합니다.
<script>
sessionStorage.setItem('lastname','Smith');
alert(sessionStorage.getItem('lastname'));
</script>
세션 개념을 잘못 이해하신 것 같은데, 세션은 서버 측에서 사용자 데이터를 저장할 수 있는 사용자별 데이터 저장소입니다.
따라서, 당신은 쿠키를 사용하는 두 가지 옵션을 가지고 있는데, 이것은 세션의 착각을 줄 것입니다(그러나 완전히 같지는 않습니다), 당신은 document.discuit에 의해 매우 간단하게 쿠키에 접근할 수 있습니다.
그러나 서버가 세션을 인식하도록 하려면 서버 요청을 사용해야 합니다. 아마도 AJAJAX를 사용하여 세션을 인식하는 것이 좋습니다.
세션 정의를 다시 읽는 것이 좋습니다.
당신은 ASP를 사용하고 있다고 생각합니다.NET MVC(C#). 그렇지 않다면 이 답변은 문제가 아닙니다.
자바스크립트를 통해 세션 값을 직접 할당하는 것은 불가능합니까?아니요, 그렇게 할 수 있는 방법이 있습니다.
코드를 다시 확인합니다.
<script type="text/javascript" >
{
Session["controlID"] ="This is my session";
}
</script>
약간의 변화:
<script type="text/javascript" >
{
<%Session["controlID"] = "This is my session";%>
}
</script>
세션 "컨트롤"ID"가 생성되었지만 세션의 가치는 어떻습니까?그것은 지속적입니까 아니면 자바스크립트를 통해 변경할 수 있습니까?
조금 더 변경해 보겠습니다.
<script type="text/javascript" >
{
var strTest = "This is my session";
<%Session["controlID"] = "'+ strTest +'";%>
}
</script>
세션이 생성되지만 세션 내부의 값은 ""+ strTest +"가 되지만 "This is my session"은 아닙니다.변수를 다음과 같이 서버 코드에 직접 쓰려고 하는 경우:
<%Session["controlID"] = strTest;%>
그러면 "현재 컨텍스트에 매개 변수 strTest가 없습니다.지금까지 자바스크립트를 통해 세션 값을 직접 할당하는 것은 여전히 불가능해 보입니다.
이제 저는 새로운 방법으로 이동합니다.코드 뒤에 있는 웹 메서드를 사용하여 이 작업을 수행합니다.약간의 변경을 통해 코드를 다시 확인합니다.
<script type="text/javascript" >
{
var strTest = "This is my session";
PageMethods.CreateSessionViaJavascript(strTest);
}
</script>
코드백 페이지에 있습니다.웹 메서드를 만듭니다.
[System.Web.Services.WebMethod]
public static string CreateSessionViaJavascript(string strTest)
{
Page objp = new Page();
objp.Session["controlID"] = strTest;
return strTest;
}
웹 메소드를 호출하여 Javascript에서 세션을 생성한 후.세션 "컨트롤"ID" 값은 "This is my session"입니다.
만약 당신이 제가 설명한 방법을 사용한다면, 당신의 aspx 페이지의 폼 태그 안에 이 코드 블록을 추가해주세요.코드는 페이지 메소드를 활성화하는 데 도움이 됩니다.
<asp:ScriptManager EnablePageMethods="true" ID="MainSM" runat="server" ScriptMode="Release" LoadScriptsBeforeUI="true"></asp:ScriptManager>
출처 : 자바스크립트 - 자바스크립트에서 세션으로 값을 설정하는 방법
해피 코딩, 트리
function writeCookie(name,value,days) {
var date, expires;
if (days) {
date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
expires = "; expires=" + date.toGMTString();
}else{
expires = "";
}
document.cookie = name + "=" + value + expires + "; path=/";
}
jstorage javascript 플러그인을 사용해 볼 수 있습니다. 세션을 유지하는 우아한 방법입니다. 이 http://www.jstorage.info/ 을 확인하십시오.
html에 jStorage.js 스크립트 포함
<script src="jStorage.js"></script>
그런 다음 Javascript에 다음과 같이 키에 토큰 세션을 배치합니다.
$.jStorage.set("YOUR_KEY",session_id);
여기서 "YOUR_KEY"는 다음과 같이 session_id에 액세스할 수 있는 키입니다.
var id = $.jStorage.get("YOUR_KEY");
sessionStorage는 localStorage와 유사하지만 localStorage에 만료가 설정되지 않은 상태에서 페이지 세션이 종료되면 sessionStorage가 지워집니다.
https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage 을 참조하십시오.
당신은 할 수 .name
특성:
<script type="text/javascript" >
{
window.name ="This is my session";
}
</script>
사용할 포맷을 스스로 개발하거나 이미 존재하는 라이브러리(mootools, Dojo 등)의 래퍼를 사용해야 합니다.
쿠키를 사용할 수도 있지만, 쿠키는 클라이언트에서 서버로 왔다 갔다 하고 하나의 도메인에만 한정되기 때문에 성능이 더 중요합니다.
쿠키에 문자열 정보를 저장하고 읽을 수 있습니다.
서버에서 오는 세션 ID인 경우, 서버는 이 쿠키를 생성할 수 있습니다.그리고 다른 요청이 서버로 전송될 때 쿠키도 올 것입니다.브라우저에서 아무것도 하지 않아도 됩니다.
그러나 세션 ID를 생성하는 것이 Javascript인 경우.다음과 같은 기능을 사용하여 Javascript로 쿠키를 만들 수 있습니다.
쿠키가 Javascript의 페이지에서 작성된 경우 또는 서버에서 작성된 경우, 해당 쿠키를 작성한 동일한 도메인의 페이지 또는 탭에서 읽기 기능이 작동합니다.
쿠키를 만들고 만료 날짜를 지정하지 않으면 세션 쿠키가 생성되고 세션이 끝날 때 만료됩니다.
자세한 내용은 https://stackoverflow.com/a/532660/1901857 을 참조하십시오.
<script type="text/javascript">
function myfunction()
{
var IDSes= "10200";
'<%Session["IDDiv"] = "' + $(this).attr('id') + '"; %>'
'<%Session["IDSes"] = "' + IDSes+ '"; %>';
alert('<%=Session["IDSes"] %>');
}
</script>
이것이 제가 한 일이고, 그것이 작동했고, PHP로 세션을 만들고, HTML 페이지가 로드될 때마다 세션이 설정되어 있는지 확인하기 위해 xmlhtprequest를 사용했으며, 그것이 코르도바에서 작동했습니다.
HTML5 로컬 저장소를 사용합니다.원하는 시간에 데이터를 저장하고 사용할 수 있습니다.
<script>
// Store
localStorage.setItem("lastname", "Smith");
// Retrieve
var data = localStorage.getItem("lastname");
</script>
언급URL : https://stackoverflow.com/questions/2257631/how-to-create-a-session-using-javascript
'sourcecode' 카테고리의 다른 글
Android Room에서 엔티티의 특정 필드를 업데이트합니다. (0) | 2023.08.07 |
---|---|
장면 위임자와 앱 위임자의 차이점 (0) | 2023.08.07 |
Moodle 3.6의 질문 뱅크에서 임의 질문을 추가하는 동안 코딩 오류가 발생했습니다. (0) | 2023.08.07 |
매크로에서 붙여넣은 토큰을 대문자로 바꿀 수 있습니까? (0) | 2023.08.07 |
Get-ChildItem 결과 수 제한 (0) | 2023.08.07 |