Komut dosyası yürütme reddedildi, katı MIME türü denetimi etkinleştirildi mi?


Yanıtlar:


60

Bir var <script>bazı harici JavaScript yüklemeye çalışıyor elemanı.

Verdiğiniz URL, bir JavaScript programını değil, bir JSON dosyasını işaret ediyor.

Sunucu, JSON olduğunu doğru bir şekilde bildiriyor, bu nedenle tarayıcı, JSON'u JavaScript olarak çalıştırmaya çalışmak yerine bu hata mesajıyla iptal ediyor (bu bir hata verir).


Muhtemelen bunun altında yatan sebep, bir Ajax talebinde bulunmaya çalışmanız, çapraz kaynak hatasına çarpmış olmanız ve jQuery'ye JSONP kullandığınızı söyleyerek bunu düzeltmeye çalışmış olmanızdır. Bu, yalnızca URL JSONP (JavaScript'in farklı bir alt kümesidir) sağlıyorsa işe yarar, ki bunu sağlamaz.

Ek sorgu dizesi parametresine callback=the_name_of_your_callback_functionsahip aynı URL, yine de JavaScript döndürür.


4
şimdi bunu verdim ve <script id = "data" type = "application / json"
hatasını düzeltir

2
type="application/json"- Artık tarayıcı JavaScript'i yüklemeye çalışmadığını biliyor, bu nedenle komut dosyası öğesini tamamen yok sayıyor.
Quentin

59

Benim durumumda bulunamayan bir dosyaydı, javascript dosyasının yolunu yanlış yazdım.


8
Aynısı. Yanlış yol, bazı html sayfası yanıtlarında hata ile sonuçlanır ve bu da bu kafa karıştırıcı hata mesajına neden olur.
Gil Roitto

2
Dahice cevap. Teşekkür ederim :)
Anjana Silva

21

Bu sonuç, google'da ilk ortaya çıkan sonuçtur ve burada olanlardan daha geniştir. Aşağıdakiler bir ekspres sunucu için geçerli olacaktır :

İç içe bir klasörden kaynaklara erişmeye çalışıyordum.

İçinde index.htmlben vardı

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

Statik yol şu konuma monte edildi:

app.use(express.static(__dirname));

Ancak, script.jsşu şekilde iç içe geçmiş klasörde bulunur : js/myStaticApp/script.js betiği yürütmeyi reddetti, meme türü denetimi etkinleştirildi. Statik yolu şu şekilde değiştirdim:

app.use(express.static(path.join(__dirname, "js")));

Şimdi çalışıyor :)


6

Node.js kullanıyorsanız express.static () kullanmayı deneyin.

Dosyaları doğrudan sunmaya başlamak için statik varlıklarınızı tuttuğunuz dizinin adını express.static ara katman yazılımına iletmeniz yeterlidir. Örneğin, resimlerinizi, CSS ve JavaScript dosyalarınızı public adlı bir dizinde tutarsanız, aşağıdaki işlemleri yapabilirsiniz -

yani: app.use (express.static ('genel'));

Bu yaklaşım sorunumu çözdü.

Teşekkürler,


bu özel soruya doğru cevap olmayabilir ama sorunumun çözümü buydu. Teşekkürler!
mcheah

4

Bir süre aradıktan sonra Windows 10 64 bitlerimdeki bu hatanın JavaScript ile ilgili olduğunu fark ettim. Bunu görmek için tarayıcınız DevTools'a gidin ve önce bunu onaylayın. Benim durumumda "MIME türü ('uygulama / javascript') çalıştırılabilir değil" gibi bir hata gösteriyor.

Bu durumda bir çözüm buldum. İşte anlaşma:

  1. Https://github.com/jupyterlab/jupyterlab/issues/6098 adresinden "ilango100" kullanıcısını ödünç alma :

Aynı sorunu bir süre önce yaşadım. Bu sorunun Windows'a özgü olduğunu düşünüyorum. Bunun nedeni, javascript dosyaları için Windows kayıt defterinde yanlış MIME türünün ayarlanmasıdır. Windows kayıt defterini doğru içerik türüyle düzenleyerek sorunu çözdüm:

regedit -> HKEY_LOCAL_MACHINE \ Software \ Classes -> Her dosya uzantısı için birçok klasör göreceksiniz -> ".js" kayıt defterine gidin ve seçin -> "İçerik Türü" değeri aşağıdakilerden farklıysa sağda application / javascript, ardından bu soruna neden oluyor. İçerik Türüne sağ tıklayın ve değeri application / javascript olarak değiştirin

görüntü açıklamasını buraya girin

Tarayıcıda tekrar deneyin. "

Bundan sonra hatanın değiştiğini fark ettim. Artık tarayıcıda otomatik olarak açılmıyor bile. Bununla birlikte, PGAdmin yan çubukta (takvime / saate yakın) açılacaktır. Doğrudan tarayıcıda ("Yeni PGAdmin 4 penceresi ...") açmaya çalıştığınızda da çalışmaz.

SON ÇÖZÜM: "Sunucu URL'sini kopyala" yı tıklayın ve tarayıcınıza yapıştırın. Benim için çalıştı!


1
+1 bu benim için çalıştı. Kullanmak kayıt değişikliği yapılmış application/javascriptiçin .jsuzatma. Sonra pgAdmin'i kapattım ve yeniden açtım ve iyi yüklendi (sunucu URL'sini kopyalamadan). Windows 8.1 ve PostgresSQL 13 çalıştırıyorum
Eric Mutta

2

Yanlışlıkla js dosyası adında .minyerine .min.js...


1

Python şişesi

On Windows'un bu HKCR "İçerik Türü" değer / .js doğru MIME ayarlı değilse bu yüzden senin soruna neden olabilir yazın kayıt verileri kullanır.

Regedit'i açın ve HKEY_CLASSES_ROOT'a gidin .js / İçerik Türü anahtarının text / javascript değerine sahip olduğundan emin olun

C:\>reg query HKCR\.js /v "Content Type"

HKEY_CLASSES_ROOT\.js
    Content Type    REG_SZ    text/javascript

0

Kod parçacığını aşağıda gösterildiği gibi html girişine ekleyin. yani reactjs'deki "index.html"

<div id="wrapper"></div>
<base href="/" />


1
Bunun neden yararlı olduğuna dair bir açıklamayı çok takdir ediyorum.
Juan Lanus

-1

Ekspres üzerinde aşağıdaki gibi bir rotanız varsa:

app.get("*", (req, res) => {
  ...
});

Daha spesifik bir şey için değiştirmeyi deneyin:

app.get("/", (req, res) => {
  ...
});

Örneğin.

Ya da kendinizi aynı HTML şablonunu tekrar tekrar sunarken bulabilirsiniz ...


-1

Aynı sorunu yaşadım sonra böyle düzelttim

change "text/javascript"

-e

type="application/json"

2
Bu, tarayıcının ilk etapta URL için istekte bulunmasını durdurur ve scriptöğenin belgedeki varlığını tamamen anlamsız hale getirir .
Quentin

-1

Benim durumumda 404'lü dosya için bir sembolik bağım vardı ve Tomcat'im sembolik bağlantılara izin verecek şekilde yapılandırılmamıştı.

Bunun çoğu insan için neden olmadığını biliyorum, ancak çaresizseniz, her ihtimale karşı bu olasılığı kontrol edin.


-2

Aynı sorunu yaşadım ve sorun, yolumda bir eğik çizgiyi kaçırmamdı.

sahiptim

ve düzeltmek için sadece jquery-ui ve jquery-ui.min arasına eğik çizgi eklemem gerekiyordu:

  <script type="text/javascript" src="js/jquery-ui/jquery-ui.min.js"></script>

umarım bu yardımcı olur: D


-12

Jsp yoluma yalnızca $ {pageContext.request.contextPath} ekleyerek sorunumu çözdüm. onun yerine :

 <script    src="static/js/jquery-3.2.1.min.js"></script>

Ben ayarladım:

 <script    src="${pageContext.request.contextPath}/static/js/jquery-3.2.1.min.js"></script>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.