簡體   English   中英

JavaScript文件在最近的Chrome版本上停止工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM