跨域问题解决方法
本文通过设置 Access-Control-Allow-Origin 来实现跨域。
例如:客户端的域名是 client.com,而请求的域名是 server.com。
如果直接使用 ajax 访问,会有以下错误:
XMLHttpRequest cannot load http://server.com/server.php.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://client.com' is therefore not allowed access.
允许单个域名访问
指定某域名( http://client.com )跨域访问,则只需在 http://server.com/server.php 文件头部添加如下代码:
1<?php
2
3header('Access-Control-Allow-Origin: http://client.com');
允许多个域名访问
指定多个域名( http://client1.com, http://client2.com 等 )跨域访问,则只需在 http://server.com/server.php 文件头部添加如下代码:
1<?php
2
3$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : '';
4
5$allow_origin = array(
6 'http://client1.com',
7 'http://client2.com'
8);
9
10if(in_array($origin, $allow_origin)){
11 header('Access-Control-Allow-Origin: '.$origin);
12}
允许所有域名访问
允许所有域名访问则只需在 http://server.com/server.php 文件头部添加如下代码:
1<?php
2
3header('Access-Control-Allow-Origin: *');