使用angularJS代码在远程服务器上设置$\会话(php)无效

使用angularJS代码在远程服务器上设置$\会话(php)无效,php,session,cross-domain,cors,remote-server,Php,Session,Cross Domain,Cors,Remote Server,我为登录验证实现了一个带有php的api: 这将设置登录会话id(例如,在验证用户凭据之后) 如果会话id设置与否,则检查登录是否有效 这会破坏会话并需要注销 在代码中进行身份验证登录时,我将登录设置为$\u SESSION[“id”]=1 然后auht检查就可以了,否则AUH检查将包含错误 当我在浏览器或ReST客户端中调用这些URL时, 但是在我的angularJS代码中使用它们会返回错误 会话集似乎无法通过客户端中的PHPSESSID使用,并且无法正常工作 它与沙盒、CORS或html头请

我为登录验证实现了一个带有php的api:

这将设置登录会话id(例如,在验证用户凭据之后)

如果会话id设置与否,则检查登录是否有效

这会破坏会话并需要注销

在代码中进行身份验证登录时,我将登录设置为$\u SESSION[“id”]=1 然后auht检查就可以了,否则AUH检查将包含错误

当我在浏览器或ReST客户端中调用这些URL时, 但是在我的angularJS代码中使用它们会返回错误

会话集似乎无法通过客户端中的PHPSESSID使用,并且无法正常工作
它与沙盒、CORS或html头请求有关吗?

嗨,我最终通过这种方式解决了这个问题:

客户端,在angularJS中,我将其放在我的路由配置中,以应用所有RESTAPI请求

$httpProvider.defaults.withCredentials = true;
我想我应该主要使用.htaccess for web服务器:

Header add Access-Control-Allow-Credentials "true"
但为了引起您的注意,我最终将整个.htaccess文件更新为以下内容:

Header add Access-Control-Allow-Origin "http://localhost:3000"
Header add Access-Control-Allow-Credentials "true"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "GET, POST"
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
<FilesMatch "\.php$">
Order Allow,Deny
Deny from all
</FilesMatch>
<FilesMatch "index[0-9]?\.php$">
Order Allow,Deny
Allow from all
</FilesMatch>
标题添加访问控制允许来源”http://localhost:3000"
标头添加访问控制允许凭据“true”
标题添加访问控制允许标题“来源,x请求,内容类型”
标题添加访问控制允许方法“GET,POST”
重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[QSA,L]
命令允许,拒绝
全盘否定
命令允许,拒绝
通融
在php中,我还使用以下JSON响应: $response=“所需的JSON响应对象”; $status='OK或未经验证或…'; $status='200或403或…'; 标题(“内容类型:application/json”); 标题(“HTTP/1.1$status$status_message”); echo json_编码($response); 退出()


希望这个问题和答案能帮助您

它与访问控制相关吗