共計(jì) 987 個(gè)字符,預(yù)計(jì)需要花費(fèi) 3 分鐘才能閱讀完成。
瀏覽器的同源策略,就是出于安全考慮,瀏覽器會(huì)限制從腳本發(fā)起的跨域 HTTP 請(qǐng)求。
解決辦法:
header("Access-Control-Allow-Origin: *");// 當(dāng)前跨域域名 * 全部
header("Access-Control-Allow-Methods: GET,POST,PUT,DELETE");// 響應(yīng)類型
header("Access-Control-Max-Age: 3628800");//Access-Control-Max-Age 用來(lái)指定本次預(yù)檢請(qǐng)求的有效期,單位為秒,,在此期間不用發(fā)出另一條預(yù)檢請(qǐng)求。
允許或者指定單個(gè) 域名 訪問(wèn)
header(‘Access-Control-Allow-Origin:https://wanqutv.com’);
header(‘Access-Control-Allow-Methods:POST’); // 表示只允許 POST 請(qǐng)求
header(‘Access-Control-Allow-Headers:x-requested-with, content-type’); // 請(qǐng)求頭的限制
或者可以限制跨域
// 設(shè)置能訪問(wèn)的域名
static public $originarr = [
'https://test1.com',
'https://test2.com',
];
/**
* 公共方法調(diào)用
*/
static public function setheader()
{
// 獲取當(dāng)前跨域域名
$origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : '';
if (in_array($origin, self::$originarr)) {
// 允許 $originarr 數(shù)組內(nèi)的 域名跨域訪問(wèn)
header('Access-Control-Allow-Origin:' . $origin);
// 響應(yīng)類型
header('Access-Control-Allow-Methods:POST,GET');
// 帶 cookie 的跨域訪問(wèn)
header('Access-Control-Allow-Credentials: true');
// 響應(yīng)頭設(shè)置
header('Access-Control-Allow-Headers:x-requested-with,Content-Type,X-CSRF-Token');
}
}
正文完