對內IP正常/
對外IP 有CORS policy blocked 錯訊
xhr = new XMLHttpRequest();
xhr.open("POST", URL, false);
xhr.send("Hello");
在send這邊錯訊:
Access to XMLHttpRequest at "URL" from origin "URL" has been blocked by CORS policy: The request client is not a secure context and the resource is in more-private address space 'local'
DOMException: Failed to execute 'send' on 'XMLHttpRequest': Failed to load "URL"
message:
"Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'URL'."
name:
"NetworkError"
對內IP 成功
回應的header有包含Access-Control-Allow-Origin:*
明明完全一模一樣樣的東西....想哭阿....
請問各位大大 還能再檢查哪裡......
加一條 Header 試試看:
Access-Control-Request-Private-Network: false
如果還不行, 那只好認真解了:
這個現象來自 PNA:
W3C: Local Network Access
在內網可以, 是因為 Server 的 IP 位於 local 這個命名空間內, 所以 Chrome 放行.
一但 Server 的 IP 超出這個命名空間以外, 他就要求嚴格的 CORS.
因不清楚你內網的定義為何。就先暫定你是127.0.0.1
但你要知道瀏覽器的一些特性。如「本機安全性原則」
所以在瀏覽器能確定在本機運行下。如「localhost」或「127.0.0.1」
大多數的限制,都會被解除。畢竟這符合「本機」的定義。
自然會略過一些「本機安全性原則」的問題。
所以一般我都會建議開發盡量採用host的方式。且指定的IP不要是127.0.0.1。