當我們寫好 API 後,如果因為網域不同,是沒辦法存取的,如果我們使用 CodeIgniter 寫好的 API 是要給其他網域存取的話,就需要做一下設定。
首先在撰寫 API 的 Controller 加上以下 header:
//允許跨網域存取的 domain,如果寫 * 代表所有網域都可以,這個很危險 header('Access-Control-Allow-Origin: *'); //可以使用的 method,像是 GET, POST, PUT...等 header("Access-Control-Allow-Methods: GET, OPTIONS"); class Robot extends CI_Controller {
因為 Access-Control-Allow-Origin 設定為 * 很危險,一般我們應該會設定某些特定的 domain,像是這樣:
header('Access-Control-Allow-Origin: https://www.example.com');
那如果要接 API 的網站也是 CodeIgniter 寫的話,則注意 config 檔是否也有設定 domain,打開 /config/config.php 檔,找到 $config['base_url'] = ''; ,接著改成你在 Access-Control-Allow-Origin 的網址:
$config['base_url'] = 'https://www.example.com';
這樣就可以設定好了。