Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ajax请求后在服务器端应用程序上保持会话-跨域_Php_Ajax_Cordova_Session_Cross Domain - Fatal编程技术网

Php ajax请求后在服务器端应用程序上保持会话-跨域

Php ajax请求后在服务器端应用程序上保持会话-跨域,php,ajax,cordova,session,cross-domain,Php,Ajax,Cordova,Session,Cross Domain,我使用Slim框架在PHP中构建了一个服务器端web应用程序。此应用程序只是向跨域上的其他应用程序提供web服务。我正在使用AJAX请求创建登录 另一个域的客户端应用程序已经内置了ReactJS实际上我正在构建Phonegap应用程序。我从我的客户端应用程序发送登录请求,以使用AJAX检查和匹配凭据,如果在JSON数组中匹配其返回的用户数据。这就是我现在的工作方式: 问题:成功登录后,我还试图在服务器端应用程序中存储或创建会话,以便在用户登录时验证其他请求。我也在存储cookies,但也希望存储

我使用
Slim框架
PHP
中构建了一个服务器端web应用程序。此应用程序只是向跨域上的其他应用程序提供web服务。我正在使用
AJAX
请求创建登录

另一个域的
客户端
应用程序已经内置了
ReactJS
实际上我正在构建
Phonegap
应用程序。我从我的
客户端
应用程序发送登录请求,以使用
AJAX
检查和匹配凭据,如果在
JSON
数组中匹配其返回的用户数据。这就是我现在的工作方式:

问题:成功登录后,我还试图在
服务器端应用程序中存储或创建会话,以便在用户登录时验证其他请求。我也在存储cookies,但也希望存储会话以进行一些安全的数据存储。但是会话不会根据
AJAX
请求存储或创建

如何根据跨域的AJAX请求创建或存储会话

我的代码如下:

服务器端:

$app->get('/login/{username}/{password}', function (Request $request, Response $response) {

    $username = $request->getAttribute('username');
    $password = $request->getAttribute('password');

    $user = $this->eloquent->table('u')
                        ->select('*')
                            ->where('username', $username)
                            ->where('password', $password)->get();
    $_SESSION['user_auth'] = 1;
    $response->getBody()->write(json_encode($user));

    return $response;
});
$.ajax({
            url : config.remoteAddr + '/login/' + username + '/' + password,
            type : 'get',
            dataType : 'json',
            async : false,
        }).done(function(data){
            if(data[0]){
                alert('loggedin');
                console.log(data);
                cookie.set('auth', '1', {path : '/'});
                cookie.set('userId', data[0].id , {path : '/'});
                error = false;
            }
        }).fail(function(){
            console.log('fail');
        })
客户端:

$app->get('/login/{username}/{password}', function (Request $request, Response $response) {

    $username = $request->getAttribute('username');
    $password = $request->getAttribute('password');

    $user = $this->eloquent->table('u')
                        ->select('*')
                            ->where('username', $username)
                            ->where('password', $password)->get();
    $_SESSION['user_auth'] = 1;
    $response->getBody()->write(json_encode($user));

    return $response;
});
$.ajax({
            url : config.remoteAddr + '/login/' + username + '/' + password,
            type : 'get',
            dataType : 'json',
            async : false,
        }).done(function(data){
            if(data[0]){
                alert('loggedin');
                console.log(data);
                cookie.set('auth', '1', {path : '/'});
                cookie.set('userId', data[0].id , {path : '/'});
                error = false;
            }
        }).fail(function(){
            console.log('fail');
        })