php header跨域请求的设置

后端开发PHP 861

正常情况下适用于所有域的请求:

header('Access-Control-Allow-Origin: *');  
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');

需要注意的是,这段代码要放到文件最上面,下面是比较安全的设置方法:

栗子1:

 header('Access-Control-Allow-Origin: http://mysite1.com', false);
 header('Access-Control-Allow-Origin: http://example.com', false);
 header('Access-Control-Allow-Origin: https://www.mysite2.com', false);
 header('Access-Control-Allow-Origin: http://www.mysite2.com', false);

据说此法效率很高

栗子2:

$http_origin = $_SERVER['HTTP_ORIGIN'];

$allowed_domains = array(
  'http://domain1.com',
  'http://domain2.com',
);

if (in_array($http_origin, $allowed_domains))
{  
    header("Access-Control-Allow-Origin: $http_origin");
}

此法简单易维护

Post Comment