發表文章

目前顯示的是 12月, 2025的文章
圖片
現在只要在CSS加上一行 text-autospace:normal ,中文與英文數字間就會自動產生空格般的視覺間距,不用再為這個網頁開發規範而煩惱。 舊有的快速解決方案 在以前,遇過一個開發規定,就是上面提到的「空格規範」,這其實很簡單就能做到:在VS Code開發環境使用 AutoCorrect 或 Auto Add Space between Chinese and English 套件就能自動幫你空格。 但如果是要修改公司從以前到現在累積的上千篇文章,全部更正除了人工加上空格之外,想要快速解決這個問題就是載入 pangu.js 這個套件在client端自動處理。 但這個套件其實在某些少數的狀況下不會產生空格,而且為了這個需求而載入一個套件,開發人員還要為此多寫一段測試。 text-autospace降臨解救眾生 在瀏覽器支援 text-autospace 語法之後,一切的問題都不再是問題。 body{ text-autospace:normal; } text-autospace的瀏覽器支援情況。 但是你在加上這行語法之後,若遇到中英文中間不需有空格視覺的時候(例如某些品牌名稱),則要再寫 text-autospace: no-autospace; 讓文字間看起來沒有空格。
圖片
為什麼 API 權限全開,還是會封鎖連線? 開發前後端分離架構,或是串接不同環境 API 時,常發生一種情況:後端已設定 Access-Control-Allow-Origin: * (允許所有網域存取),且 Postman 測試正常,但從瀏覽器環境透過 JavaScript 發送請求給內網或私有環境的 API 伺服器時,Chrome 卻強制阻擋連線。 這是 Chrome 實施「 區域網路存取權 」(Local Network Access, LNA)規範所致,目的是為了保護使用者免於跨網站要求偽造 (CSRF) 攻擊。 使用者在初次進入網站時,可能會看到這2種提示訊息視窗(也可能不會看到就自動封鎖): 這會帶來什麼影響? 這項安全機制會導致即使後端 API 權限全開,瀏覽器仍攔截請求。具體的錯誤訊息如下: Access to fetch at 'https://api.example.com/apiName' from origin 'https://www.example.com' has been blocked by CORS policy: Permission was denied for this request to access the `unknown` address space. net::ERR_FAILED 看到 Permission was denied for this request to access the ... address space 關鍵字,即代表觸發區域網路存取限制。瀏覽器判定來源(如 www.example.com )位於公網,而目標解析後位於私有網路或無法判定的位址空間,直接封鎖。 技術債的償還:API 呼叫的正規做法 遇到此問題時,有些網站管理者會教使用者如何解除封鎖,並叫他們點擊「允許」: 點擊網址左邊的icon。 開啟存取權。 重新整理頁面。 跳出提示視窗時點擊允許。 使用者手動解除封鎖的方法 但從架構安全的角度來看, 前端直接呼叫私有 API 或第三方服務,本質上就是一種「技術債」 ,就算寫在 .env 裡面有心人也有辦法翻出來。API 呼叫的最佳實踐本來就該是 S...