地區頁面的JavaScript請求顯示HTTP 200,瀏覽器卻因MIME類型拒絕執行。成功收到回應不代表腳本資源合格。輪換住宅出口前,先比最終回應標頭、實際內容與瀏覽器的請求用途。本文為自有網站受控驗收設計,並非98IP瀏覽器相容性實測報告。

1. 先找正確的腳本載入上下文
由失敗頁面的網路與主控台,記發起文件、請求資源路徑、重新導向後URL、狀態、回應Content-Type及診斷。區分傳統腳本和JavaScript模組。直接導覽檔案、命令列下載或普通fetch,都不同於script元素的載入環境。
有X-Content-Type-Options: nosniff時,腳本用途的回應須具JavaScript MIME類型才通過該檢查。瀏覽器JavaScript模組另外有嚴格MIME規則,沒有nosniff也要求可接受類型。不是所有類型錯誤都由該標頭造成,移除它也不會使錯誤模組有效。
受控案例使用text/javascript。.js、.mjs副檔名不會自行設定真正HTTP標頭;標頭正確也不證明位元組屬於預期建置或已執行。此處處理腳本資源回應,與請求本文類型或API內容協商不同。
2. 對照資源契約與真實內容
以核准工具檢視少量、不敏感的回應內容:究竟是腳本、HTML應用外殼、登入頁、地區中介頁或錯誤頁?保留重新導向鏈;腳本路徑可能最後收到200的HTML登入內容。
自有部署需獨立約定路徑、建置ID、媒體類型與無害執行標記,不能從下載結果倒推答案。HTML配text/html可以是正確的HTML標示,卻仍非腳本需要的資源。把HTML改標JavaScript並非修復。
本文是預期JavaScript、標頭卻為text/plain或通用二進位類型時,查靜態檔或物件中繼資料;兩者都錯先查路由部署。缺失的版本化資源落到單頁應用HTML回退,是應驗證的假設,不該套用所有地區錯誤。
3. 以小型正負例驗證
- 建立自有HTTPS頁與極小無害JavaScript,不含匯入、外部請求、帳戶資料或寫入。只有程式執行後才顯示測試完成標記。
- 以text/javascript交付正確資源;傳統腳本對照保持nosniff。由真實script元素載入,回應與執行標記都通過才算成功,記瀏覽器及建置版本。
- 隔離變體維持相同JavaScript位元組,只故意改送text/plain。傳統腳本加nosniff案例預期在MIME邊界被拒,沒有執行標記。需有主控台證據,不能只看功能不見。
- 另測無匯入及副作用的模組,對照正確與錯誤類型,記嚴格MIME拒絕,不用刪除nosniff作恢復。
- 加入路由負例:資源路徑改回HTML外殼並標text/html,200也要被驗收器判為錯誤資源。恢復真正路由及中繼資料,再跑正例和故意錯例。
- 修後經指定住宅地區重測,固定帳戶、瀏覽器、儲存與版本,會話策略穩定,記實際出口及最早相異的回應或載入決定。
上述均為待觀察預期。維持既有保護;若CSP、驗證等在更早階段攔住,就記錄那個邊界,採負責人核准的案例配置,不關閉正式環境控制來強行實驗。
4. 路由、快取與後續執行分開查
- 最後是HTML登入或挑戰頁:確認授權路徑與帳戶條件,不自動繞過挑戰,也不直接指控代理破壞程式。
- 舊HTML指向已移除的雜湊檔:查發布次序、歷史資源保留與文件新鮮度,不靠無限重試。
- 源站正確、快取交付不同:比較建置標記和快取證據,只修或失效獲准的受影響測試物件。
- 由Service Worker或本機快取提供:用核准的新測試設定隔離比對。命令列抓源站不等於瀏覽器消費相同內容。
- MIME已通過仍未執行:繼續查語法、匯入與下一個主控台錯誤,一關通過不代表全站正常。
一般未攔截解密的HTTPS代理不能改寫隧道內加密的源站Content-Type或程式本文。地區不同先比最終路由、CDN交付、授權帳戶及應用配置。如另有核准攔截層,須另記,不當普通住宅隧道。
5. 保留各項檢查的界線
CSP可能基於政策拒載,參考CSP資源故障診斷。跨來源模組仍需適用的CORS權限,完整性中繼資料也會拒絕改動內容。MIME正確不能替代其他檢查,亦不可對可疑HTML重新產生完整性值。
加請求Content-Type不是修回應類型的方法。回應Content-Type、Content-Encoding、Content-Disposition不同;副檔名像腳本或新分頁直接開啟,都不能證明正常載入執行。
只留案例建置ID、瀏覽器版本、請求及最終路徑、導向狀態、回應類型、nosniff是否存在、上下文及執行標記。必要時用摘要或核准資源參照,避免保存私密本文。分享前移除URL權杖,排除Cookie、憑據、帳戶內容與授權標頭。
6. 何時用98IP比地區交付
授權網站驗收需住宅網路視角時,可查98IP動態住宅IP產品頁與API設定文件,採帳戶支援方式。各地區比較同案例和版本,控制流量並核對實際用量。路徑能揭露交付差異,不能把HTML變成JavaScript,也不保證瀏覽器行為。
- 真正請求、導向鏈及載入上下文已確認。
- 位元組和回應類型皆符合建置。
- 傳統腳本nosniff與模組嚴格MIME不混淆。
- 錯誤標頭與HTML回退負例仍被發現。
- 修資源或中繼資料,同時保留保護。
- 執行證據、其他關卡與地區條件各自報告。
200就表示腳本載入成功? 不夠,還須驗內容、瀏覽器關卡及無害執行標記。
可刪nosniff來修? 應保留保護修交付;模組另有JavaScript類型要求。
HTML回應改標text/javascript即可? 不可,應恢復正確資源或路由,改標籤不會產生所需程式。