CodeIgniter解决跨域问题

跨域问题通常都是在后端也就是server端处理。先拿java举例,通常是在返回前端时获取response对象,设置返回报文header中Access-Control-Allow-Origin的属性。代码例子为:php

response().setHeader("Access-Control-Allow-Origin", "*");

说回正题,最近选择codeigniter做为后台server,用ci解决跨域问题大同小异,在controller中,按照下面的代码:前端

header("Access-Control-Allow-Origin: * "); 
//$this->output->set_header("Access-Control-Allow-Origin: * "); // 这么写也能够,可是我我的推荐第一行的写法
$this->output->set_output(json_encode(array("name" => "hello woody"))); //返回json格式的报文

如今看来确实很简单也很类似,可是在解决过程当中也遇到一些问题。java

错误代码一json

echo 'hello woody';    //在header前使用echo语句,报php语法错误
header("Access-Control-Allow-Origin: * ");

错误代码二后端

echo 'hello woody';    //在$this->output->set_header先后使用echo语句,前端报跨域错误
$this->output->set_header("Access-Control-Allow-Origin: * ");

正确代码一跨域

$this->output->set_header("Access-Control-Allow-Origin: * ");
$this->output->set_output(json_encode(array("name" => "hello woody"))); //返回json格式的报文

正确代码二codeigniter

header("Access-Control-Allow-Origin: * "); 
$this->output->set_output(json_encode(array("name" => "hello woody"))); //返回json格式的报文
相关文章
相关标签/搜索