[英]JavaScript file stopped working on the last Chrome version
我們有一個舊頁面。 最近,谷歌瀏覽器(和其他最新版本的瀏覽器)停止顯示menu,但是如果我單擊“刷新”,則Inspect Tool會顯示以下錯誤:
資源被解釋為腳本,但以MIME類型text / html傳輸:“ ... / menu.js.php”
該問題的解決方案是什么,或者該問題實際上在其他地方?
這是因為服務器未正確設置標頭內容類型:
Content-Type: application/javascript
為了明確起見,您的服務器應在響應上設置正確的http標頭以反映內容類型。
我猜您的網頁中有一個帶有type =“ text / javascript”的腳本標簽,但Chrome表示服務器未將內容標識為javascript。
Content-Type
這不是問題。
問題出在其他地方。 我看到的一個問題是fancybox:
1.9版中的jQuery已刪除了大多數(即使不是全部)折舊方法。
$ .browser是其中之一。 Fancybox依賴於$ .browser,因此如果未安裝Migration插件,則無法使用jQuery 1.9或maior和您的fancybox版本。
您可以將jQuery降級到1.9以下版本,或者將fancybox升級到版本2或包含jquery migration插件 。
因為Javascript文件實際上是PHP文件,所以服務器將文件傳輸為text / html 。 我自己沒有發現這一點。 我從SCRIPTONITE的答案中獲取了
要在PHP中設置標頭,可以使用header()
函數。 您應該始終盡早設置標題,以免出錯。 如果尚未將任何內容發送到輸出,則只能設置標頭。 沒有回聲,沒有HTML,什么也沒有。 從手冊中:
請記住,必須先通過常規HTML標記,文件中的空白行或從PHP發送任何實際輸出,然后調用header()。
要設置Javascript文件的標頭,請使用以下行:
header("Content-Type: application/javascript");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.