让编程改变世界

让编程改变世界、改变生活、改变自己

PHP开发小技巧①⑦—PHP实现跨域

        由于项目需要,一些界面用HTML+CSS+Javascript实现,放入到不同的服务器中,还需要进行数据交互,这时就会出现请求失败,返回的信息如下:

             No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

        这是因为浏览器跨域策略起作用,阻止了跨域的请求。看看HTTP请求过程就知道。第一次请求后端时候,浏览器意识到是访问一个跨与资源,没有直接发送GET请求获取数据,而是发送了一个OPTIONS请求询问是否可以访问该资源。我们称之为Preflight请求,默认因为同源策略的存在,该请求返回的Header中没有'Access-Control-Allow-Origin'属性,所以访问失败。

        如果要实现跨域,关键在于服务器,客户端的代码按照正常的方式编写即可。对于服务器,只需要在收到OPTIONS请求的地方,返回的头信息中增加该属性即可,代码如下:

//允许所有域名发起的跨域请求
header('Access-Control-Allow-Origin: *');
//允许指定发起的跨域请求如:www.test.com
//header("Access-Control-Allow-Origin: http://www.test.com");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
header('Access-Control-Allow-Methods: GET, POST, PUT');

        此时即可实现跨域请求。。。

阅读更多
版权声明:转载时请标注http://blog.csdn.net/zhihua_w https://blog.csdn.net/Zhihua_W/article/details/78815184
个人分类: PHP
所属专栏: PHP开发小技巧
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

PHP开发小技巧①⑦—PHP实现跨域

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭