Bunun jQuery veya istemci tarafı kod kodunun herhangi bir tuhaflığı ile ilgisi yoktur. Bu bir sunucu tarafı sorunudur: Sunucu (-side uygulaması), istemci tarafı komut dosyası kaynağı için beklenen HTTP Content-Type
üstbilgisi alanı değerini göndermiyor . Bu durum, Web sunucusu yetersiz yapılandırılmış, yanlış yapılandırılmışsa veya bir sunucu tarafı uygulaması (örn. PHP) istemci tarafı komut dosyası kaynağı oluşturuyorsa oluşur.
JavaScript gibi ECMAScript uygulamaları için uygun MIME ortam türleri şunları içerir:
text/javascript
( eski olarak kaydedilmiş , kullanımdan kaldırılmamış; ancak yine de geçerli ve en iyi şekilde desteklenmektedir )
text/ecmascript
( eski olarak kaydedilmiş , kullanımdan kaldırılmamış; ancak yine de geçerli )
application/javascript
application/ecmascript
Onlar do not dahil application/x-javascript
yukarıda listelenen MIME ortam türleri artık standartları ağacında kayıtlı olanlar olduğu gibi (bu yüzden gerek yoktur ve orada hiçbir Talep olmalıdır artık deneysel olanları kullanmak için). Krş RFC 4329, "Komut Dosyası Ortam Türleri" (2005 CE) ve Test Durumum: Komut Dosyası Ortam Türleri için Destek .
Çözümlerden biri, mümkünse, önerildiği gibi sunucuyu yapılandırmaktır. Apache için, bu yönergeyi eklemek kadar basit olabilir
AddType text/javascript .js
(ayrıntılar için Apache HTTP Sunucusu belgelerine bakın).
Ancak, istemci tarafı komut dosyası kaynağı PHP gibi bir sunucu tarafı uygulaması tarafından oluşturuluyorsa Content-Type
, varsayılan olarak büyük olasılıkla üstbilgi alanı değerini açıkça ayarlamak gerekir text/html
:
<?php
header('Content-Type: text/javascript; charset=UTF-8');
// ...
?>
(Bu ve benzeri ifadeler başka herhangi bir çıktıdan önce gelmelidir - PHP kılavuzuna bakın - aksi takdirde HTTP mesaj gövdesi zaten başlamış kabul edilir ve daha fazla başlık alanı göndermek için çok geç.)
Sunucu tarafında oluşturma, sunucuda düz .js dosyalarınız olsa bile, yorumların sunuldukları gibi kaldırılması, hepsinin tek bir büyük yanıt halinde paketlenmesi durumunda ( daha verimli olabilen isteklerin sayısı) veya sunucu tarafı uygulaması tarafından başka bir şekilde en aza indirgenir.