1. 程式人生 > >php或者nginx解決跨域問題

php或者nginx解決跨域問題

注意:nginx或php配置其中一種就可以了

在nginx中新增(註釋部分):.

location / {
    #以下跨域設定
    if ( $request_method = OPTIONS ) {
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods GET,POST,PUT,PATCH,DELETE,OPTIONS,HEAD;
        add_header Access-Control-Allow-Headers Origin,X-Requested-With,Content-Type,Accept,Authorization;
        return 200;
    }
    #以上跨域設定
    try_files $uri $uri/ /index.php?$args;
}

在php控制器(建議寫在通用控制器中或者入口頭部)中新增:

通用控制器新增:

public function init() {
    parent::init();
    //允許所有來源訪問 
    header('Access-Control-Allow-Origin:*');    
    //允許訪問的方式
    header('Access-Control-Allow-Method:GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS,HEAD'); 
   //允許自定義的頭部引數
    header("Access-Control-Allow-Headers:Origin,X-Requested-With,Content-Type,Accept,Authorization");   
}

或者直接在入口檔案頭部新增:

    //允許所有來源訪問 
    header('Access-Control-Allow-Origin:*');    
    //允許訪問的方式
    header('Access-Control-Allow-Method:GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS,HEAD'); 
    //允許自定義的頭部引數
    header("Access-Control-Allow-Headers:Origin,X-Requested-With,Content-Type,Accept,Authorization");