PHP Ajax 跨域问题最佳解决方案

admin8年前技术文档1578

本文通过设置Access-Control-Allow-Origin来实现跨域。

例如:客户端的域名是client.runoob.com,而请求的域名是server.runoob.com。

如果直接使用ajax访问,会有以下错误:

XMLHttpRequest cannot load http://server.runoob.com/server.php. No 'Access-Control-Allow-Origin' header is present on the requested resource.Origin 'http://client.runoob.com' is therefore not allowed access.

1、允许单个域名访问

指定某域名(http://client.runoob.com)跨域访问,则只需在http://server.runoob.com/server.php文件头部添加如下代码:

header('Access-Control-Allow-Origin:http://client.runoob.com');

2、允许多个域名访问

指定多个域名(http://client1.runoob.com、http://client2.runoob.com等)跨域访问,则只需在http://server.runoob.com/server.php文件头部添加如下代码:

$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : '';  
  $allow_origin = array(  
    'http://client1.runoob.com',  
    'http://client2.runoob.com'  );  
  if(in_array($origin, $allow_origin)){  
    header('Access-Control-Allow-Origin:'.$origin);       }

3、允许所有域名访问

允许所有域名访问则只需在http://server.runoob.com/server.php文件头部添加如下代码:


header('Access-Control-Allow-Origin:*');


分享到:

相关文章

Laravel创建项目和安装PHPStorm IDE插件

一.win10下安装composer(该步骤省略,具体用法请参考“composer中国“)二.安装phpstorm插件1.在项目的composer.json中添加如下一行,可以具体根据版本号来对应co...

CentOS安装rpcapd服务(WinPcap)

因为需要用Wireshark进行远程抓包,需要在远程主机上安装相应的rpcapd服务。Windows上只要安装WinPcap软件就行了,它已经包含了rpcapd服务,只要启动就行了。但Linux上需要...

浅谈 PHP 与手机 APP 开发(API 接口开发)

文章转载自:http://www.thinkphp.cn/topic/5023.html这个帖子写给不太了解PHP与API开发的人一、先简单回答两个问题:1、PHP 可以开发客户端?答:不可以,因为P...

阿里云ECS centos配置IPV6支持具体: 1. 修改disable_ipv6.conf,不同的系统命名会有些差别

阿里云ECS centos配置IPV6支持具体: 1. 修改disable_ipv6.conf,不同的系统命名会有些差别

具体:1. 修改disable_ipv6.conf,不同的系统命名会有些差别# cp /etc/modprobe.d/disable_ipv6.conf /data/gu...

PhpExcel中文帮助手册|PhpExcel使用方法

PhpExcel中文帮助手册|PhpExcel使用方法

phpexcel 下载:hongweizhiyuan-phpexcel-master.zip下面是总结的几个使用方法include 'PHPExcel.php';include ...

PHP实现登陆后台限制到只允许一台机器在线

方法一:# <?php# ob_start();# session_start();# class CC{#   private $REFURL="http://www.php100....

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。