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',會出現如上錯誤,去掉一個即可。

rss_feed