2016-11-04 53 views
0

我创建了一个PHP RESP API应用程序。我需要使用其API从另一个域访问此应用程序。是否可以指定CORS域头可以允许cors只从一个域访问php

<?php 
header("Access-Control-Allow-Origin: *"); 
header("Access-Control-Allow-Headers: *"); 
... 

上面的代码允许CORS从每一个domain.But我需要只允许来自特定域的CORS。

+0

然后而不是“*”,你应该指定域。 – Federkun

+0

如果它是两个域 –

+0

'Access-Control-Allow-Origin'标头控制给定页面可以发送请求的内容,除了原始页面。所以它控制着“来”,而不是“来自”。你需要在你的API里面指定这样的头文件,但是在向这个API发出请求的页面中。 – arkascha

回答

0

此问题的解决方案是使用$ _SERVER ['HTTP_ORIGIN']变量来确定请求是否来自允许的域。它然后设置这样的:

试试下面的代码:

header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']); 
0

试试下面的代码:

<?php 
// Cross-Origin Resource Sharing Header 
header('Access-Control-Allow-Origin: http://base.com'); 
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS'); 
header('Access-Control-Allow-Headers: X-Requested-With, Content-Type, Accept'); 
?> 
0

这可能不是回答你的眼前问题,但我个人使用下面的确保只有在适当的主机上才能获取内容。

$host = 'example.com'; 

if ($_SERVER['HTTP_HOST'] != $host) { 
    header("Location: http://$host"); 
    exit; 
} 

在.htaccess中,我设置了Header set X-Frame-Options "SAMEORIGIN"以进一步限制访问。

相关问题