softius / cors-proxy
PHP CORS代理
dev-master / 1.0.x-dev
2018-09-21 14:12 UTC
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-09-21 20:30:59 UTC
README
以前被称为 "PHP 跨域(AJAX)代理"}
PHP CORS代理是一个简单的PHP脚本,允许跨域请求。当无法在目标网站上启用CORS时,可以使用它来访问第三方网站的资源,例如,当您不拥有该网站时。
注意:请查看如何启用您服务器上的CORS,以确定此解决方案是否确实必要。
概览
功能
- 作为反向代理:请求头和数据从代理传播到服务器。同样,响应头和数据从代理传播到客户端。
- 支持所有方法:GET、POST、PUT、DELETE。
- 也支持HTTPS。
- 请求可以与受信任的域名或URL列表进行筛选。
- 外部配置(进行中)
- 错误处理,即当服务器不可用时(进行中)
- 调试模式(进行中)
要求
PHP Cors Proxy与PHP 5.3+或更高版本兼容。
作者
- Iacovos Constantinou - softius@gmail.com - https://twitter.com/iacons
- 还可以查看参与此项目的贡献者列表。
许可证
PHP CORS代理根据GPL-3.0授权。有关详细信息,请参阅LICENCE.txt
文件。
安装
使用composer
composer require softius/cors-proxy
手动安装
代理仅限于一个文件。您只需将proxy.php
放置在应用程序的公共文件夹下即可。
配置
出于安全原因,请务必在proxy.php
文件的最上面部分定义所有受信任的域名/URL。
$valid_requests = array( 'http://www.domainA.com/', 'http://www.domainB.com/path-to-services/service-a' );
注意:目前正在进行的工项允许在proxy.php
之外进行配置
使用方法
可以通过提供X-Proxy-URL
头或通过传递特殊的GET
参数来初始化跨域请求。强烈建议使用前一种方法,因为它不会修改请求查询。此外,请求看起来更清晰,更容易理解。
使用头部
可以通过使用X-Proxy-URL
头指定目标URL,这可能比使用您的JavaScript库设置更容易。例如,如果您想自动为外部URL目标使用代理,用于GET和POST请求
$.ajaxPrefilter(function(options, originalOptions, jqXHR) { if (options.url.match(/^https?:/)) { options.headers['X-Proxy-URL'] = options.url; options.url = '/proxy.php'; } });
以下示例使用curl
curl -v -H "X-Proxy-URL: http://cross-domain.com" http://yourdomain.com/proxy.php
使用查询
为了进行跨域请求,只需向http://www.yourdomain.com/proxy.php发送请求,并使用csurl
(GET)参数指定目标URL。显然,您可以根据需要添加更多参数;请注意,其余参数将在跨域请求中使用。例如,如果您正在使用jQuery
$('#target').load( 'http://www.yourdomain.com/proxy.php', { csurl: 'http://www.cross-domain.com/', param1: value1, param2: value2 } );
以下示例使用curl
curl -v "http://yourdomain.com/proxy.php?csurl=http://www.cross-domain.com/¶m1=value1¶m2=value2"