jQuery에서 세션 변수를 설정할 수 있습니까?jQuery에서 세션 액세스
jQuery에서 세션의 일부 데이터를 저장해야하며 jQuery를 통해 해당 데이터를 검색하려고합니다.
당신이 jQuery를 사용하여 클라이언트 측 세션 처리에서 찾고 있다면$.getSession.set("var","value");
jQuery에서 세션 변수를 설정할 수 있습니까?jQuery에서 세션 액세스
jQuery에서 세션의 일부 데이터를 저장해야하며 jQuery를 통해 해당 데이터를 검색하려고합니다.
당신이 jQuery를 사용하여 클라이언트 측 세션 처리에서 찾고 있다면$.getSession.set("var","value");
세션은 서버 측에서 액세스 할 수 있습니다. 그러나 원하는 경우 서버에 ajax 요청을 호출하고 원하는 것을 가져 오는 함수를 작성하여 세션에 액세스 할 수 있습니다.
편집 : 내가 많이 좋아하는 나는, 당신이 사용하는 ASP.NET MVC 프레임 워크를 보여주지
. 다른 프레임 워크의 아이디어는 동일합니다. 단지 서버에 대해 세션에 대해 물어보십시오.
그래서, 아래의 서버 측에서 같이하자 - 간단한 컨트롤러와 2 개 기본적인 조치가 기록됩니다
public class HomeController : Controller
{
public ActionResult Index()
{
// store sample data
Session["user"] = new { name = "Anton Chigurh", age = 42 };
return View();
}
public JsonResult GetSessionValue(string key)
{
return Json(Session[key]);
}
}
은 첫째, 당신은 Index
조치를 호출하여 예를 들어, 세션에 뭔가를 저장해야합니다. 그런 다음 GetSessionValue
조치를 호출하여 이전에 저장된 값을 검색하십시오. 애플리케이션의 세션 또는 브라우저의 쿠키를 비활성화하지 않은 한 올바른 값을 가져야합니다.
값을 얻는 방법? 그냥 아약스 요청을 보내 : 당신은 동기 요청 할 것입니다 자바 스크립트 기능을 쓸 수 있습니다
- 사실 약간의 시간 동안 브라우저를 고정 할 수 있습니다 (일부 계산, 네트워크 인프라 조건 등에 사용되는 서버 시간 소비에 따라 달라집니다 .) :
function getSessionValue(key) {
var result;
$.ajax({
url: "/Home/GetSessionValue",
type: 'POST',
dataType: 'json',
data: JSON.stringify({ key: key }),
contentType: 'application/json; charset=utf-8',
async: false
}).done(function (data) {
result = data;
});
return result;
}
// invoke
var user = getSessionValue("user");
console.log(user.name + ": " + user.age);
또는 완료되면 콜백을 호출하는 비동기 버전 :
function getSessionValue(key, callback) {
$.ajax({
url: "/Home/GetSessionValue",
type: 'POST',
dataType: 'json',
data: JSON.stringify({ key: key }),
contentType: 'application/json; charset=utf-8',
}).done(function (data) {
callback(data);
});
}
// invoke
getSessionValue("user", function(x) {
console.log(x.name + ": " + x.age);
});
BTW : json seriazlization을 사용했습니다. 서버와 개체를주고받을 때 선호하는 방식이기 때문에. 다른 것 - jQuery done
이벤트는 성공시에만 트리거됩니다. 서버 측에서 몇 가지 오류 (예 : catch되지 않은 예외)가 발생하면 요청은 http 500을 반환하고 이벤트는 호출되지 않습니다.
같은 것을 거기, 당신은 그것을위한 플러그인을해야합니다.
제가 생각할 수있는 것은 jQuery Session Plugin입니다.
안녕하세요. 문자열 저장 및 Retriving에서는 괜찮지 만 Ajax 호출에서 반환 된 객체는 저장할 수 없습니다. – pst
당신이 생각하는 세션은 PHP에서 $ _SESSION과 같은 것들로 액세스되는 서버 세션으로 생각할 수 있으며 액세스 할 수있는 유일한 방법은 서버 측에 있지만 아약스를 사용하여 값을 설정하고 가져올 수 있습니다. sessionStorage라는 최신 브라우저에는 세션 저장소가 내장되어 있으며 localStorage와 마찬가지로 작동합니다. 세션이 끝나면 비게됩니다. – adeneo
서버 세션 **에는 매우 중요한 데이터 **가 포함될 수 있습니다. 클라이언트 측에서 맹목적으로 콘텐츠를 게시하지 마십시오! 어떤 요구 사항이 클라이언트 측에서 세션 변수에 액세스 할 수 있는지 정당화 할 수 있습니까? 나는 더 좋은 방법이 있다는 것을 확신합니다. 실제 요구 사항을 설명 할 수 있습니까? –
@Steve B : 방금 말했듯이 ** ** 포함될 수 있습니다. 기본적으로 그것은 당신이 원하는 것을 저장할 수있는 정직한 컨테이너 일뿐입니다.그러한 접근법의 적합성은 또 다른 경우입니다. – jwaliszko