Ajax跨域處理No 'Access-Control-Allow-Origin' header
最近更新時間 2019-12-31 12:05:42
has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present
Ajax跨域請求時會被瀏覽器限制,出現如上錯誤提示,W3C標準規定,如果需要實現不同域名之間資源共享,需要目標服務器返回一系列Headers,表明是否同意其他服務器訪問資源。
詳細情況可以參考:HTTP訪問控制(CORS)
設置Header
1. 設置某個域名可以訪問
<?php
#PHP
header("Access-Control-Allow-Origin: https://docsxyz.com");
2. 設置所有域名可以訪問
<?php
#PHP
header("Access-Control-Allow-Origin: *");
#瀏覽器返回效果
#Access-Control-Allow-Origin: *
3.靜態頁面中設置
<meta http-equiv="Access-Control-Allow-Origin" content="*" />
3.Nginx中設置
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Credentials' 'true';
常見問題
The 'Access-Control-Allow-Origin' header contains multiple values '*, *',
如果在PHP和Nginx同時設置,Header中會出現多個'Access-Control-Allow-Origin',會出現如上錯誤,去掉一個即可。