hex*_*D49 16
通常,此标头应该可以完成这项工作.在此标头中包含域名
header("Access-Control-Allow-Origin: " . $_SERVER['HTTP_ORIGIN'] . "");
// use domain name instead of $_SERVER['HTTP_ORIGIN'] above
Run Code Online (Sandbox Code Playgroud)
但如果您想查看更多信息,请使用以下代码段
$allowed = array('domain1', 'domain2', 'domain3');
if(isset($_SERVER['HTTP_ORIGIN']) && in_array($_SERVER['HTTP_ORIGIN'], $allowed)){
// SELECT credentials for this user account from database
if(isset($_GET['api_key'], $_GET['app_secret'])
&& $_GET['api_key'] == 'api_key_from_db'
&& $_GET['app_secret'] == 'app_secret_from_db'
){
// all fine
}else{
// not allowed
}
}else{
// not allowed
}
Run Code Online (Sandbox Code Playgroud)
如果用户必须将更多数据传递给您的服务,请使用POST而不是GET
Laravel 5:在请求方法控制器中:
$origin = request()->headers->get('origin');
Run Code Online (Sandbox Code Playgroud)
从技术上讲,HTTP 标头既不是origin也不referer是必需的,所有这些答案都基于发送的特定浏览器标头,并且将您的系统基于客户端的不同行为是一个坏主意。
正确的答案是您无法可靠地获取每个请求的客户端来源,因为 HTTP 规范中并不要求它。
使用$_SERVER['HTTP_REFERER']。它是将用户代理引导到当前页面的页面地址(如果有)。这是由用户代理设置的。HTTP_REFERER并非所有用户代理都会设置此项,有些用户代理提供了修改功能的能力。
如需进一步限制,您可以执行以下操作。example.com应该更改为您的域。
IIS 在 Web 配置中设置如下:
add name="Access-Control-Allow-Origin" value="http://www.example.com"
Run Code Online (Sandbox Code Playgroud)
Apache 在 httpd.conf/apache.conf 中设置如下
Header add Access-Control-Allow-Origin "http://www.example.com"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42202 次 |
| 最近记录: |