iT邦幫忙

0

nginx裡面給特定port設置Access-Control-Allow-Origin的問題

各位前輩們好

目前用nginx架了一個網站,裡面入口的port是:80,但我的api資料是放在:17054這個port,原本是直接在server設置裡面增加proxy_pass的方式:

	location /api {
		proxy_pass  http://10.1.108.192:17054;
	}

但因為之後網址可能會不斷變動的關係,所以暫時捨棄這個作法,改為在前端界面先用寫上完整網址並加上:17054之後去ajax資料,但就遇到了CROS的問題,爬了文之後,基本上都說是要在nginx的配置文件裡面增加以下內容

	location / {
		add_header 'Access-Control-Allow-Origin' *;
		add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
		add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
	}

測試過將這個放在原本:80的server內,也試過再增加一個server去listen:17054並增加上面內容,但基本上都還是沒用,所以想問問看,是否還有什麼解決方法?

小魚 iT邦大師 1 級 ‧ 2021-04-22 18:05:53 檢舉
可以寫在API的頁面?
現在很多瀏覽器已經不允許*號的回應了。
可以先試著打域名或IP上去看看可不可以過。
我記得可以帶參數,只是要找有點懶

可以先用POSTMAN的OPTIONS發送試試。

我自已是沒靠NGINX做回應。而是寫在程式內自動回應。
也比較安全。
後來同事幫忙修改API的那個port的設置,好像是跟header被擋有關係,然後就可以了...一樣感謝~
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答