在 uniapp 前端頁面請求時出現類似如下錯誤
Access to XMLHttpRequest at 'https://example.com/api/mtiku/config' from origin 'http://localhost:20000'
has been blocked by CORS policy: Response to preflight request doesn't pass access control check:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
這個通常是由于跨域請求導致的,需要在 http 服務器添加跨域相關頭信息。
寶塔服務器在 網站設置 → 站點修改 → 偽靜態 處添加。
Nginx配置
server {// 其他配置add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';add_header Access-Control-Allow-Headers *;add_header Access-Control-Expose-Headers *;location / {add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';add_header Access-Control-Allow-Headers *;if ($request_method = 'OPTIONS') {return 200;}try_files $uri $uri/ /index.php?$query_string;}// 其他配置
}
Apache配置
<IfModule mod_headers.c>Header set Access-Control-Allow-Origin "*"Header set Access-Control-Allow-Methods "GET, POST, OPTIONS"Header set Access-Control-Allow-Headers "*"Header set Access-Control-Expose-Headers "*"Header always set Access-Control-Allow-Credentials "true"
</IfModule>
?