如何使用ajax请求javascript/PHP在远程服务器上存储会话
我在启动服务器,并尝试在使用ajax服务器进行查询。我需要执行同样的操作来发送setcookie命令,将cookie存储在192.168.1.2服务器上,并在localhost服务器上使用ajax获取信息 因此,javascript AJAX请求的代码:如何使用ajax请求javascript/PHP在远程服务器上存储会话,javascript,php,ajax,session,cookies,Javascript,Php,Ajax,Session,Cookies,我在启动服务器,并尝试在使用ajax服务器进行查询。我需要执行同样的操作来发送setcookie命令,将cookie存储在192.168.1.2服务器上,并在localhost服务器上使用ajax获取信息 因此,javascript AJAX请求的代码: let query = this.http.get('http://192.168.1.2/testdb.php'); query.toPromise().then((result) => { console.log(result
let query = this.http.get('http://192.168.1.2/testdb.php');
query.toPromise().then((result) => {
console.log(result);
console.log(result.json());
});
我正在查询服务器192.168.1.2,以便在脚本运行时将信息存储在会话中,从而从中获取信息
在服务器上,我尝试做一些事情,并将信息存储在会话变量中。但我不能,因为每次我从本地主机向192.168.1.2发送新查询时,我的服务器(192.168.1.2)每次都会设置新会话。若我并没有错,我需要将cookie设置为正确的,以便将会话存储在远程服务器上
我在PHP服务器(192.168.1.2)上的代码是:
session_start();
标题('Access-Control-Allow-Origin:');
标题('Access-Control-Allow-Headers:');
回声“;
变量转储(标题列表());
回声“;
echo json_encode(数组('success'=>true,'session_id'=>session_id());
每次查询时,我都会得到新的会话ID。要存储会话,我需要将id设置为somealways。
那么,如何在远程服务器上存储会话信息呢?
另外,很抱歉我的英语不好,我很难解释。
会话变量就像一块饼干。在您的情况下,您应该在会话中存储一个Id以及一个用户Id,并将该用户Id发送到您的服务器。服务器将检索userid并返回id。 比如:
let query = this.http.get(http://192.168.1.2/testdb.php?userId=someid);
query.toPromise().then((result)=>{
console.log(result);
console.log(result.json());
});
希望有帮助
- Nic
我知道这个解决方案,但想通过任何没有id的查询自动存储它。也许我可以使用session_set_cookie_params?@AlexanderZakusilo这种方法通常用于设置cookie的参数,如生存时间或安全级别,您可以尝试。在代码中,每次调用时都要插入一个新的会话变量,这就是为什么每次都有不同的Id。
<?php
function getInfo(){
$id = $_GET['userId'];
//some id validations;
$sessionData = $_SESSION[$id];
echo json_encode($sessionData);
}
function setInfo(){
$id = generateuserid();
//some id validation
$sessionData = array('id' => session_id(), 'data' => 'data'); // the data you need to store;
$_SESSION[$id] = $sessionData;
echo json_encode(array('userId' => $id));
}
?>
let query = this.http.get(http://192.168.1.2/testdb.php?userId=someid);
query.toPromise().then((result)=>{
console.log(result);
console.log(result.json());
});