Ajax跨域请求PHP数据解决办法

学习笔记 马富天 2016-06-02 10:11:16 82 0

【摘要】前段时间一个朋友问我怎么解决Ajax跨域请求PHP数据是怎么实现的,因为自己也没有想到PHP是可以跨域访问的,所以当时我就说不好实现,如今我发现了其实是可以跨域的,这篇文章简单介绍一下跨域访问。

跨域访问其实就是例如:两个独立的域名www.mafutian.cn和www.test.cn这个两个域名,www.mafutian.cn的某个页面想要请求www.test.cn的php数据,这就是跨域访问。

接下来讲解在Ajax跨域访问PHP数据的解决办法:

完整例子:

两个独立的域名www.mafutian.cn和www.test.cn,页面http://www.mafutian.cn/test/index.html通过Ajax访问访问页面:http://www.test.cn/index.php中的数据。

页面http://www.mafutian.cn/test/index.html中的代码:

  1. <script src="/public/home/style/js/jquery-1.8.2.min.js"></script>     
  2. <script>
  3. 	$.ajax({
  4. 	   type: "POST",
  5. 	   url: "http://www.test.cn/index.php",
  6. 	   data: "",
  7. 	   success: function(msg){			   		
  8. 	     	console.log( msg );
  9. 	   }			   
  10. 	});	
  11. </script>

页面http://www.test.cn/index.php中的PHP代码:

  1. header('Access-Control-Allow-Origin:http://www.mafutian.cn');
  2. echo "Hello world!";

程序执行结果如图:

请输入图片名称

核心代码就是设置header,header('Access-Control-Allow-Origin:http://www.mafutian.cn');这行代码的意思是允许http://www.mafutian.cn进行访问此页面。

那么如果想允许所有域名都可以访问呢?那么就这样设置,改成*:

  1. //	允许所有
  2. header('Access-Control-Allow-Origin:*');

如下图,header('Access-Control-Allow-Origin:http://www.mafutian.cn,http://www.test.cn');这样设置多个域名是会报错的,错误提示是只允许设置一个域名:

请输入图片名称

如果想要允许多个域名可以访问,这需要用到foreach将域名数组中的所有域名都进行设置,如下:

  1. $arr = array('http://www.mafutian.net','http://www.mafutian.cn');
  2. foreach($arr as $v){
  3. 	header('Access-Control-Allow-Origin:'.$v);	
  4. }

版权归 马富天PHP博客 所有

本文标题:《Ajax跨域请求PHP数据解决办法》

本文链接地址:http://www.mafutian.net/140.html

转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

0

2

上一篇《 PHP实现中文 字母字符串翻转函数无乱码 》 下一篇《 聚类、增量聚类的简介 》
分享到:

暂无评论

评论审核未开启
表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情
验证码

TOP10

  • 浏览最多
  • 评论最多