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格式的報文
相關文章
相關標籤/搜索