允许多域名跨域 php,PHP设置多域名允许跨域访问

针对 PHP 语言设置多域名允许跨域访问

服务器变量:

服务器变量存储在 $_SERVER 数组中,在这个数组中有一个特殊的键值:HTTP_ORIGIN。这个键只在跨域的时候才会存在值,同源时为空字符串

响应头设置允许某域名访问:access-control-allow-origin

header 函数可以设置允许某域名跨域访问,形式为 header('access_control_allow_origin:*')。

贴代码:$allow_origin = array(

'a.baidu.com',

'b.baidu.com',

);

//跨域访问的时候才会存在此字段

$origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : '';

if (in_array($origin, $allow_origin)) {

header('Access-Control-Allow-Origin:' . $origin);

} else {

return;

}

note:通过接口工具请求接口时 $_SERVER['HTTP_ORIGIN'] 变量也为空字符串。

推荐教程:PHP教程

PHP设置和验证CORS(跨源资源共享)头部允许服务器指定哪些源可以访问服务器上的资源。这通常在发送HTTP响应时通过设置响应头来完成。以下是实现这一功能的基本步骤: 1. 设置Access-Control-Allow-Origin头部:这个头部指定了哪些外部域可以访问资源。例如,如果你想允许所有域进行跨域请求,可以设置为'*'(注意这可能带来安全风险,一般推荐具体指定域名)。如果只允许特定域进行跨域请求,则直接指定该域。 ```php header('Access-Control-Allow-Origin: http://example.com'); // 允许特定域 // 或者 header('Access-Control-Allow-Origin: *'); // 允许所有域,不推荐 ``` 2. 设置其他CORS相关的头部(可选):根据需要,可能还需要设置其他几个CORS相关的头部,例如: - `Access-Control-Allow-Methods`:指定允许的HTTP方法。 - `Access-Control-Allow-Headers`:指定允许的头部字段。 - `Access-Control-Allow-Credentials`:指定是否允许发送cookies。 - `Access-Control-Max-Age`:缓存预检请求的秒数。 ```php header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); // 允许的HTTP方法 header('Access-Control-Allow-Headers: Content-Type, Authorization'); // 允许的头部字段 header('Access-Control-Allow-Credentials: true'); // 允许发送cookies header('Access-Control-Max-Age: 3600'); // 缓存预检请求的秒数 ``` 3. 确保服务器正确处理OPTIONS预检请求:浏览器在发送实际请求之前可能会发送一个OPTIONS请求作为预检。服务器需要正确处理这种请求,并返回适当的CORS头部。 ```php if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { // 设置适当的CORS头部 // ... exit(0); // 结束脚本执行 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值