php跨域删除cookies,php 跨域解决cookie传sessionid的问题,nginx解决跨域
时间: 2023-12-21 17:22:42 浏览: 109
要跨域删除 cookies,需要在 PHP 中设置一个与原始域名不同的域名。例如,如果原始域名是 example.com,则可以使用 subdomain.example.com 作为新的域名。
在 PHP 中,可以使用 `setcookie` 函数来设置 cookies。以下是一个示例:
```
setcookie("cookie_name", "", time() - 3600, "/", "subdomain.example.com", false, true);
```
这会将名为 `cookie_name` 的 cookie 删除,并将域设置为 `subdomain.example.com`。
如果要解决跨域传输 sessionid 的问题,可以使用以下方法:
1. 将 sessionid 附加到 URL 中,例如 `http://example.com?PHPSESSID=xxxxx`。
2. 将 sessionid 存储在 cookie 中,并将 cookie 域设置为顶级域名(例如 `.example.com`)。
要在 Nginx 中解决跨域问题,可以使用以下配置:
```
location /api {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
if ($request_method = 'OPTIONS') {
return 204;
}
}
```
这将允许来自任何来源的跨域请求,并允许 GET、POST 和 OPTIONS 方法。同时还允许一些常见的请求头字段。如果请求方法为 OPTIONS,则返回 204 响应。
阅读全文