php 服务器跨域处理,服务器端php设置允许跨域的方法

服务器端php设置允许跨域

解决跨域的关键是设置 Access-Control-Allow-Origin。

例如:客户端的域名是 api.freexyz.cn,而请求的域名是www.freexyz.cn

如果直接使用ajax访问,会有以下错误:

XMLHttpRequest cannot load http://www.freexyz.cn/server.php. No 'Access-Control-Allow-Origin' header is present on the requested resource.Origin 'http://api.freexyz.cn' is therefore not allowed access.

1.允许单个域名访问

指定某域名http://api.itbsl.com跨域访问,则只需在http://www.freexyz.cn/server.php文件头部添加如下代码:

header('Access-Control-Allow-Origin:http://api.freexyz.cn');

2.允许多个域名访问

指定多个域名 http://api.freexyz.cn、http://doc.freexyz.cn等 跨域访问,则只需在http://www.freexyz.cn/server.php文件头部添加如下代码:

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

$allow_origin = array( 'http://api.freexyz.cn', 'http://doc.freexyz.cn' );

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

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

}

3.允许所有域名访问

允许所有域名访问则只需在http://www.freexyz.cn/server.php文件头部添加如下代码:

header('Access-Control-Allow-Origin:*');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要解决文件下载时的跨域问题,可以在服务器端设置跨域资源共享(CORS)头部。具体步骤如下: 1. 在服务器端PHP 脚本中,设置响应头部,允许指定的域名跨域访问该资源。例如,以下代码表示允许来自 example.com 域名的请求跨域访问该资源: ```php header('Access-Control-Allow-Origin: example.com'); ``` 2. 如果需要允许多个域名跨域访问该资源,可以使用通配符 `*`,例如: ```php header('Access-Control-Allow-Origin: *'); ``` 但是使用通配符可能会存在安全风险,因为它允许任何域名都可以跨域访问该资源,所以建议仅允许指定的域名访问。 3. 如果需要允许跨域请求发送自定义请求头部,可以使用 `Access-Control-Allow-Headers` 字段,例如: ```php header('Access-Control-Allow-Headers: Authorization, X-Requested-With'); ``` 上述代码表示允许跨域请求发送 `Authorization` 和 `X-Requested-With` 两个自定义请求头部。 4. 如果需要允许跨域请求发送不同的 HTTP 方法,可以使用 `Access-Control-Allow-Methods` 字段,例如: ```php header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); ``` 上述代码表示允许跨域请求发送 `GET`、`POST`、`PUT` 和 `DELETE` 四种 HTTP 方法。 需要注意的是,以上代码需要放在文件下载的 PHP 脚本的开头部分,确保在下载文件之前设置响应头部。此外,还需要确保 PHP 脚本没有其他输出,否则会导致设置响应头部失败。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值