通过 Jquery/Javascript 插入会话值

Inserting session values through Jquery/Javascript

本文关键字:会话 插入 Javascript Jquery 通过      更新时间:2023-09-26

可以通过JavaScript或Jquery在会话变量中插入会话值吗?

我确实喜欢session["variable_name"] = "some value";它不起作用

即使我尝试过<%session["variable_name"] %> = "some value"这也不起作用。

但是可以从会话中读取。

它说..在Javascript中没有名为"Session"的关键字。

任何解决方法...

现在我已经通过 Cookie 完成了它,但我需要通过会话来做到这一点。

有人在这里经历过吗?

PHP 会话值是在服务器上设置的,这意味着 javascript 可以操作它们的唯一方法是,如果您向另一个使用 ajax 的页面发出请求以设置值,例如:.JS:

$('.updateSession').on('click', function(){
    $.post('updatesession.php', 'name=john', function(){
        alert('Session Updated!');
    })
});

.PHP:

<?php
    session_start();
    if($_SERVER['REQUEST_METHOD'] === 'POST'){
        $_SESSION['name'] = $_POST['name'];
    }
?>
如果你想在

页面上"实时"更改会话变量,你可以使用 $.ajax 运行一个小脚本,在 PHP 脚本中设置会话变量,例如:

var data = 'sessioninfoiwanttostore='+myJavascriptVar ;
$.ajax({
    url: 'set-session-script.php',
    type: 'POST',
    data: data
})

然后在您的 PHP 脚本中:

<?PHP
session_start() ;
$_SESSION['whatever'] = $_POST['sessioninfoiwanttostore'] ;
?>

但请注意,这不会更改已根据您的会话变量加载的页面上的任何数据。

通常会话存储在服务器上,因此在浏览器中运行的javascript和jquery无法访问会话。从会话读取意味着服务器将值呈现到 js 可以访问它的 html 中。

由于 cookie 也存在于浏览器中,js 可以直接访问它们。

作为一种解决方法,您可以编写某种 ajax 调用来发布要插入到会话中的键/值,并在服务器端编写一个小助手,该助手获取此值并将其放入会话中。

C# 中创建一个 Web 方法,用于更新将由

[webmethod]
    public static void sesstion_update(session_value)
    {
        httpcontext.current.session["name"] = session_value;
    }

用 Jquery $.ajax方法调用此Web方法,并通过数据传递要存储在会话中的值