ทรัพยากรตีความว่าเป็นสคริปต์ แต่ถ่ายโอนด้วยข้อความประเภท MIME / ธรรมดา - สำหรับไฟล์ในเครื่อง


97

ฉันได้รับคำเตือน "ทรัพยากรที่ตีความว่าเป็นสคริปต์ แต่ถ่ายโอนด้วยข้อความ / ธรรมดาประเภท MIME" ใน Google Chrome เมื่อรวมไฟล์สคริปต์ในเครื่อง

ฉันรู้ว่าปัญหาปรากฏขึ้นเมื่อโหลดไฟล์จากเซิร์ฟเวอร์หรือผ่าน ajax ซึ่งส่วนใหญ่มักขึ้นอยู่กับการตั้งค่าส่วนหัวที่ไม่ถูกต้อง

สิ่งที่แปลกคือฉันได้รับคำเตือนนี้แม้ว่าจะเรียกใช้จากโฟลเดอร์ในเครื่อง: file:///C:/test/foo.html

สิ่งนี้เกิดขึ้นเฉพาะใน Chrome ที่มี html พื้นฐานที่สุดคือ:

<!DOCTYPE html>
    <html>
    <head>
        <script type="text/javascript" src="bar.js"></script>
    </head>
    <body>
    </body>
</html>

bar.js นั้นง่ายมากเช่นกันที่จะได้รับ:

function hello() {}

ฉันได้ลองเพิ่มเมตาแท็กแล้ว:

<meta http-equiv="content-script-type" content="text/javascript">

และทดสอบกับหลักอื่น ๆ แต่ดูเหมือนจะไม่ช่วยอะไร

เห็นได้ชัดว่านี่ไม่ใช่ปัญหาจริงเนื่องจากสคริปต์ยังใช้งานได้ดี แต่ฉันกำลังทำงานในโครงการขนาดใหญ่และขณะนี้มีสคริปต์ประมาณ 150 รายการ ดังนั้นจึงทำให้ยากที่จะเห็นเมื่อมีการเตือนเกิดขึ้นระหว่างนั้น

ทุกอย่างทำงานได้ดีเมื่อฉันเรียกใช้ไฟล์บนเซิร์ฟเวอร์ในเครื่องหรือระยะไกล

มีความคิดเห็นว่าทำไม chrome ถึงทำให้ฉันรำคาญ


คุณไม่ได้ติดตั้ง Visual Studio ล่าสุดเมื่อวันก่อนใช่ไหม สิ่งนี้เริ่มเกิดขึ้นกับฉันและนั่นคือสิ่งเดียวที่เปลี่ยนไป ...
Simon Sarris

ใช่ VS Express 2012 RC ไม่กี่สัปดาห์ที่ผ่านมา ฉันคิดถึงเรื่องนั้นเช่นกันดังนั้นฉันจึงสร้างไฟล์ด้วย notepad ++ แทน แต่ปัญหายังคงเหมือนเดิม หาก VS ก่อให้เกิดสิ่งนี้แสดงว่าพวกเขาต้องเปลี่ยนการตั้งค่า / พารามิเตอร์ส่วนกลาง? คำถามคืออะไรและฉันจะเปลี่ยนกลับได้อย่างไร?
batzkoo

ฉันยังคงพยายามคิดหาสิ่งเดิม ๆ ดูเหมือนจะเป็นเรื่องระดับโลกและเกิดขึ้นอย่างแม่นยำหลังจากที่ฉันติดตั้ง VS2012 ฉันจะแจ้งให้คุณทราบหากฉันคิดอะไรออก เพื่อความชัดเจนฉันไม่ได้ใช้ Visual Studio ในการแก้ไขไฟล์ซึ่งทำให้เป็นเรื่องแปลก
ไซมอนซาร์ริส

คำตอบ:


196

ฉันคิดออกแล้ว!

โปรแกรมติดตั้ง Visual Studio ต้องเพิ่มบรรทัดที่ผิดพลาดในรีจิสทรี

เปิดregeditและดูที่คีย์รีจิสทรีนี้:

ป้อนคำอธิบายภาพที่นี่

เห็นกุญแจนั้นไหม คีย์ประเภทเนื้อหา? เปลี่ยนค่าจาก text / plain เป็น text / javascript

ในที่สุดโครมก็หายใจได้สะดวกอีกครั้ง

ฉันควรทราบว่าไม่มีทั้ง Content Type หรือ PercasedType ตามค่าเริ่มต้นใน Windows 7 ดังนั้นคุณอาจลบทั้งสองอย่างได้อย่างปลอดภัย แต่ขั้นต่ำที่คุณต้องทำคือการแก้ไขนั้น

อย่างไรก็ตามฉันหวังว่าสิ่งนี้จะแก้ไขให้คุณได้เช่นกัน!


8
ทำได้ดีมากคุณ! สำหรับการหาวิธีแก้ปัญหานี้ ฉันไม่ได้ลบคีย์ แต่เปลี่ยนค่าข้อมูลเป็น text / javascript แทน ขอบคุณ!
batzkoo

ฮ่าฮ่าฉันเปลี่ยนเป็นข้อความ / สคริปต์ แต่มันใช้ไม่ได้บางทีฉันควรจะลอง text / javascript
Simon Sarris

ขอบคุณสำหรับการแก้ปัญหา! ฉันมีปัญหาเดียวกัน ... จริงๆแล้วกับ MIME ประเภทธรรมดา / ข้อความสำหรับฉันรหัสจาวาสคริปต์มีข้อผิดพลาด ฉันมีสตริง (ในอาร์เรย์) ที่มีตัวอักษรที่พบในการเข้ารหัส UTF-8 ที่เห็นในภาษาตะวันออก - ยูโรเปียนเช่น "ő" "Gergő" เป็นชื่อที่ดีของฮังการี ข้อผิดพลาดก็หายไปเช่นกันขอบคุณพระเจ้าเนื่องจากฉันไม่สามารถเรียกใช้รหัสของฉันได้ - แต่ฉันไม่ได้ตรวจสอบสิ่งนี้เพิ่มเติม
Zoltan

2
ว้าวคุณค้นพบวิธีแก้ปัญหานี้ได้อย่างไร?
Pakman

4
@ Pakman ฉันมีปัญหาอยู่วันหนึ่งฉันซื้อคอมพิวเตอร์เครื่องใหม่และไม่มีปัญหา จากนั้นเมื่อฉันติดตั้ง Visual Studio 2012 ฉันสังเกตเห็นว่ามันปรากฏขึ้นอีกครั้งดังนั้นฉันจึงคิดว่านั่นคือผู้กระทำผิด ฉันพบว่ามีการเปลี่ยนแปลงบางอย่างในการเชื่อมโยงไฟล์ของรีจิสทรีเนื่องจาก.jsไฟล์ทั้งหมดของฉันมี.txtไอคอนที่ดูอยู่ดังนั้นฉันจึงตรวจสอบให้แน่ใจว่าพวกเขาเชื่อมโยงกับประเภทข้อมูลที่ถูกต้อง พวกเขาไม่ใช่!
Simon Sarris

30

ฉันพยายามแก้ไขปัญหานี้โดยใช้วิธีนี้ แต่ไม่ได้ผลสำหรับฉัน

ปัญหาของฉันคือตัวจัดการ IIS ไม่มีประเภท MIME ในคุณสมบัติ HTTP

ฉันสามารถเปิดได้โดยเปิดใช้งาน Static Context ผ่าน ...

-> แผงควบคุม

-> โปรแกรม

-> เปิดหรือปิดคุณสมบัติของ Windows

-> บริการข้อมูลทางอินเทอร์เน็ต

-> บริการเวิลด์ไวด์เว็บ

-> คุณสมบัติ HTTP ทั่วไป

-> [X] เนื้อหาคงที่

หลังจากนั้นประเภท MIME ก็ปรากฏขึ้นและทุกอย่างก็เริ่มทำงานอีกครั้ง


0

คำตอบที่ได้รับการยอมรับนั้นยอดเยี่ยมมาก! อย่างไรก็ตามเพียงเพื่อโพสต์คำตอบสำหรับผู้ที่ประสบปัญหาเช่นฉันซึ่งใช้คอมพิวเตอร์ของแผนก / วิทยาลัยในบางครั้งซึ่งฉันไม่ได้รับอนุญาตให้เปลี่ยนค่าคีย์ใด ๆ ใน regedit

เปลี่ยน

<script type="text/javascript" src="main.js"></script>

ถึง

<script src="main.js"></script>

แม้ว่าข้อความแสดงข้อผิดพลาดจะยังคงมีอยู่ แต่เพจก็โหลดอย่างถูกต้อง


2
แต่ปัญหาของ OP คือหน้าเว็บโหลดได้อย่างถูกต้อง แต่ยังคงได้รับข้อความแสดงข้อผิดพลาด ดูเหมือนจะไม่เปลี่ยนแปลงอะไร
Teepeemm
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.