ThinkPHP apache实现跨域

这两天在做项目的过程中,接触到了hprose,发现这家伙支持的还是蛮全的。

hprose官方:

http://www.hprose.com/

然后就着手配置起来。

服务器端的使用请参见该地址:

http://document.thinkphp.cn/manual_3_2.html#rpc

客户端的话,我使用的是html5,可参见以下地址:

https://github.com/hprose/hprose-html5

直接使用其下的test.html即可进行测试:

源码及注释如下图所示:

服务器示例代码如下所示:

请求成功的话会出现如下界面:

请求失败的话,则会出现如下界面:

大体意思是因为跨域的问题导致无法完成请求。

解决方法一:

1、若你使用的是apache服务器,则按如下步骤进行

2、取消apache服务器配置文件http.conf下的
LoadModule headers_module modules/mod_headers.so
前面的注释

3、在apache服务器的虚拟主机配置文件中追加以下文字即可

Header add Access-Control-Allow-Origin *
Header add Access-Control-Allow-Methods “GET, POST, OPTIONS”
Header add Access-Control-Allow-Headers “Content-Type”

若需要针对特定域名,可改写为如下

Header add Access-Control-Allow-Origin http://itinfor.cn

本人的apache版本为2.4,其余版本配置情况基本一致

解决方法二:

(该方法独立配置与方法一无关)

可参见该链接:

http://www.thinkphp.cn/topic/29122.html

protected?$crossDomain?=?true;

protected?$P3P?=?true;????

protected?$get?=?true;

protected?$debug?=?true;

本人测试只需添加protected?$crossDomain?=?true;

即可实现跨域请求

如果还有什么不明白的地方,欢迎加我QQ进行咨询,请注明技术咨询

本人QQ:980569038

也可以扫码本人微信:

本人原创,转载请注明出处?http://www.itinfor.cn/archives/999

若该文章对您有一定帮助,欢迎打赏

 

 

Tagged , ,