PHP实战004:CodeIgniter跨域问题解决

2024-11-25 07:43:01

1、为什么存在跨域问题由于浏览器采用了同源策略(保护Cookie)规定某域下的客户端在没明确授权的情况下,不能读写另一个域的资源,而前后端分离开发时前后端的项目通常都是单独启动的(就不在同一个端口下了)。当前端向后台发起请求想要获取后端的数据时,就会受到浏览器同源策略的约束,前端无法收到数据。

PHP实战004:CodeIgniter跨域问题解决

3、为了解决跨域问题,就需要增加请求头来设置跨域规则Access-Control-Allow-Origin来规范跨域数据传输。在请求头header中设置Access-Control-Allow-Origin:*即允许所有源访问,那么CodeIgniter该如何添加header("Access-Control-Allow-Origin:*")这个参数呢?

PHP实战004:CodeIgniter跨域问题解决

5、Base_Controller类同样继承了CI_Controller,所以这里我们可以在Base_Controller中添加Header设置,然后在新增Controllers继承Base_Controller,这样每个页面就都继承了Header中的设置了。

6、打开core/Base_Controller.php文件,在function __construct()方法中添加header("Access-Control-Allow-Origin:*"),*代表允许所有源访问,你也可以指定访问源,比如http://localhost:8000,这样就一劳永逸啦。

PHP实战004:CodeIgniter跨域问题解决
猜你喜欢