Pourquoi ce script distant provoque-t-il le blocage d'IE6?
-
06-07-2019 - |
Question
Veuillez jeter un coup d'oeil au code HTML ci-dessous et laissez-moi savoir pourquoi IE6 se bloque lorsque vous essayez de charger le script distant (situé à l'emplacement < http://code.katzenbach.com/Default.aspx '). Le script retourne JSONP et exécute la 'callbackFunction' listée dans l'en-tête. Lorsqu'il fonctionne correctement, une alerte contextuelle indiquant les numéros 1 à 500 s'affiche. Cela fonctionne très bien dans FF3 et IE7. Je ne comprends pas pourquoi cela échoue dans Internet Explorer 6: le processeur est ancré et tout se bloque.
Exécutez-le vous-même et faites-moi savoir si vous rencontrez le même problème. J'ai regardé ce problème toute la journée. Merci pour votre aide.
Andrew
<html>
<head>
<script type="text/javascript">
function callbackFunction(Result)
{
alert(Result) ;
}
</script>
<script type="text/javascript" src="http://code.katzenbach.com/Default.aspx?callback=callbackFunction&test=true&c=500"></script>
</head>
<body>
Here
</body>
</html>
La solution
Si vous accédez directement au script ( http: // code .katzenbach.com / Default.aspx? callback = callbackFunction & amp; test = true & amp; c = 500 ), vous verrez que le fichier (type MIME inconnu) n'est pas en cours de traitement. Cela est probablement dû à un problème de configuration de votre serveur. Il ne semble pas savoir comment traiter .aspx et au lieu d'essayer de diffuser le fichier.
Autres conseils
J’ai jeté un coup d’œil à Fiddler et à IE6 et je n’ai rien pu sortir de l’ordinaire (à part le fait que le navigateur se bloque).
La demande à http://code.katzenbach.com/Default.aspx?callback=callbackFunction&test=true&=c=500
est générée et renvoie 2909 octets.
Je suggérerais trois choses:
- Supprimez l'un des points-virgules de votre type de contenu:
application / json ;; charset = utf-8
ou peut-être supprimer complètement les points-virgules etcharset = utf-8
(juste pour tester) - Envoyez un caractère de nouvelle ligne après avoir envoyé le
)
final decallbackFunction
- Changez-le en
Content-Type: text / javascript
car vous renvoyez réellement le code Javascript au navigateur, et l'autre type de contenu risque de prêter à confusion pour IE6 (bien que cela soit très peu probable).
Je pense que 1. est le plus probable. Il se peut qu’un bogue d’analyse dans IE6 l’envoie dans une boucle sans fin lorsqu’il rencontre deux points-virgules. Parce que sinon, il n'y a tout simplement aucune raison pour que ce que vous faites ne fonctionne pas.
Cela pourrait également valoir la peine d’essayer un type de test MIME différent.
Le retour du script externe est:
callbackFunction(["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99","100","101","102","103","104","105","106","107","108","109","110","111","112","113","114","115","116","117","118","119","120","121","122","123","124","125","126","127","128","129","130","131","132","133","134","135","136","137","138","139","140","141","142","143","144","145","146","147","148","149","150","151","152","153","154","155","156","157","158","159","160","161","162","163","164","165","166","167","168","169","170","171","172","173","174","175","176","177","178","179","180","181","182","183","184","185","186","187","188","189","190","191","192","193","194","195","196","197","198","199","200","201","202","203","204","205","206","207","208","209","210","211","212","213","214","215","216","217","218","219","220","221","222","223","224","225","226","227","228","229","230","231","232","233","234","235","236","237","238","239","240","241","242","243","244","245","246","247","248","249","250","251","252","253","254","255","256","257","258","259","260","261","262","263","264","265","266","267","268","269","270","271","272","273","274","275","276","277","278","279","280","281","282","283","284","285","286","287","288","289","290","291","292","293","294","295","296","297","298","299","300","301","302","303","304","305","306","307","308","309","310","311","312","313","314","315","316","317","318","319","320","321","322","323","324","325","326","327","328","329","330","331","332","333","334","335","336","337","338","339","340","341","342","343","344","345","346","347","348","349","350","351","352","353","354","355","356","357","358","359","360","361","362","363","364","365","366","367","368","369","370","371","372","373","374","375","376","377","378","379","380","381","382","383","384","385","386","387","388","389","390","391","392","393","394","395","396","397","398","399","400","401","402","403","404","405","406","407","408","409","410","411","412","413","414","415","416","417","418","419","420","421","422","423","424","425","426","427","428","429","430","431","432","433","434","435","436","437","438","439","440","441","442","443","444","445","446","447","448","449","450","451","452","453","454","455","456","457","458","459","460","461","462","463","464","465","466","467","468","469","470","471","472","473","474","475","476","477","478","479","480","481","482","483","484","485","486","487","488","489","490","491","492","493","494","495","496","497","498","499"])
Pourquoi voulez-vous alerter cela?
Quel problème essayez-vous de résoudre?