Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[HTML/JS/..] IE7 zegt "Invalid character"

Pagina: 1
Acties:

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Topicstarter
Ik ben een site aan het ontikkelen met nu nog statische html pagina's. Ze staan voor nu gehost op IIS op Windows 7. Ik probeer ze op te halen via localhost met IE9-als-IE7, maar die geeft vaak een foutmelding in de console:

SCRIPT1014: Invalid character
jquery.js, line 1, character 3

Soms zijn het andere files ipv jquery, of andere files er nog bij. Soms geeft ie helemaal geen foutmeldingen. Heel soms geeft ie een hele witte pagina vol met garbage-tekens (pak em beet 80% vierkantjes). Soms doet dit probleem zich ook voor in IE8 en IE9. Soms doet Firefox ook moeilijk en wordt er over de character set geklaagd.

Ok, de character set dus. Maar daar is niets mis mee: alle files zijn óf een verse download (jquery, selectivzr), of opgeslagen als UTF-8 met BOM. Dat geldt voor de door mij gemaakte javascripts, css en html. In de html is de charset ingesteld met een metatag op "utf-8".

Alles opslaan als UTF-8 zonder BOM maakt geen zak uit. Alles opslaan als ANSI vernaggelt speciale tekens. Alles (ook libraries) opnieuw als UTF-8 met of zonder BOM opslaan helpt ook niet.

Cache legen, IIS herstarten, website herstarten, pc herstarten. Helpt allemaal niet.

Er is wat mij betreft geen touw aan vast te knopen. Het is niet reproduceerbaar en het is elke keer weer wat anders dat fout gaat, zo lijkt het. Soms helpt een F5 of een Ctrl+F5, maar zodra ik een pagina vol garbage-tekens zie, kan ik IIS gaan herstarten, want dan helpt de harste refresh zelfs niet meer.

Wat is dit toch? :? :?

/edit
Wat wel helpt (hoewel dat maar afwachten is) is compressie uitzetten in IIS. Maarja op de productieserver staat het gewoon aan...
/edit2
Begint wel een beetje op een WOS-topic te lijken :)
/edit3
Fijn, html-pagina lijken nu te blijven werken, maar nu gaan plaatjes "opeens" weer de mist in - die raken corrupt :(

[ Voor 8% gewijzigd door _Thanatos_ op 15-11-2012 17:09 ]

日本!🎌


Verwijderd

Lijkt me tóch een IIS issue. Je geeft zelf aan dat compressie uitschakelen het probleem oplost, terwijl het probleem zich niet voordoet op je productieserver mét compressie. Logisch gevolg: de verschillen tussen de twee omgevingen naast elkaar leggen en punt voor punt elimineren.

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 08:54

Onbekend

...

_Thanatos_ schreef op donderdag 15 november 2012 @ 15:15:
Alles opslaan als UTF-8 zonder BOM maakt geen zak uit. Alles opslaan als ANSI vernaggelt speciale tekens.
Wat voor speciale tekens heb jij in een html-pagina zitten dan?

Speel ook Balls Connect en Repeat


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Kan het niet zo zijn dat de "invalid" files niet via iis benaderd worden maar via local file system opgehaald worden?

En gaat het consequent at random fout, of als het fout gaat vogel je wat en dan gaat er iets anders fout, dan vogel je weer wat en dan is bestand 1 weer fout?

  • C0rnelis
  • Registratie: Juni 2010
  • Laatst online: 01-11 21:54
Verwijderd schreef op donderdag 15 november 2012 @ 19:33:
Lijkt me tóch een IIS issue. Je geeft zelf aan dat compressie uitschakelen het probleem oplost, terwijl het probleem zich niet voordoet op je productieserver mét compressie. Logisch gevolg: de verschillen tussen de twee omgevingen naast elkaar leggen en punt voor punt elimineren.
Als compressie meerdere bestanden aan elkaar plakt, ligt het issue waarschijnlijk heel simpel bij een ; die je vergeten bent aan het einde van een javascriptbestand.

JavaScript:
1
2
3
$(document).ready(function() {
// stel dat dit bestand 1 is
})

JavaScript:
1
2
3
4
var x = 42;
$(document).ready(function() {
// stel dat dit bestand 2 is
})


Als de door jou/IIS gebruikte compressietechniek dit aan elkaar plakt kan je zoiets krijgen als:
JavaScript:
1
$(document).ready(function() {})var x =42;$(document).ready(function() {})


En dan kunnen browsers inderdaad gaat jammeren over invalid characters.
JavaScript:
1
$(document).ready(function() {})var x =42; // is opeens één statement geworden

Kun je dit eens controleren?

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Topicstarter
Logisch gevolg: de verschillen tussen de twee omgevingen naast elkaar leggen en punt voor punt elimineren.
Ja alleen heb ik daar geen tijd voor, dus dat gaat em niet echt worden.Bovendien kan ik niet bij de productieserver.
Wat voor speciale tekens heb jij in een html-pagina zitten dan?
€éö :) niks bijzonders eigenlijk...
Kan het niet zo zijn dat de "invalid" files niet via iis benaderd worden maar via local file system opgehaald worden?
Nee.
En gaat het consequent at random fout, of als het fout gaat vogel je wat en dan gaat er iets anders fout, dan vogel je weer wat en dan is bestand 1 weer fout?
Nee het is heel inconsequent juist. Soms als ik ergens wat vogel, zoals een instelling opslaan of een file wijzigen, dan gaat het 1 of 2 keer goed en daarna is het weer boem. Maar die boem kan elk van de genoemde problemen zijn, seemingly random.
Als de door jou/IIS gebruikte compressietechniek dit aan elkaar plakt kan je zoiets krijgen als:
IIS doet alleen aan deflate. De inhoud van de files laat hij ongemoeid. Ik ken eigenlijk geen server die dat doet, en ik hoop dat dat nooit gaat bestaat, want het probleem dat jij beschrijft, krijg je dan idd. Maar dat is het geval niet.

@all
Ik heb nog even verder zitten pluizen, want na compressie uitzetten wilden de plaatjes opeens niet meer laden. Met Fiddler ben ik erachter gekomen dat IIS alle binaire data van alle plaatjes gaat lopen utf-8 encoden en dan alsnog met het correcte content-type binair op de lijn kwakken. Hoe evil kun je zijn?! Toen dus even de temporary ASP.NET files weggeflikkerd (want statische files hebben alles daarmee te maken :O) en toen was ie kennelijk de corrupte "cache" kwijt. Maar nu durf ik compressie natuurlijk niet meer aan te zetten...

日本!🎌


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
_Thanatos_ schreef op donderdag 15 november 2012 @ 22:38:
Met Fiddler ben ik erachter gekomen dat IIS alle binaire data van alle plaatjes gaat lopen utf-8 encoden
Wait. Whut :? Kun je dat nogmaals uitleggen en hoe je tot die conclusie gekomen bent? Want die bewering (en de rest van die alinea) does not compute zeg maar :X

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
_Thanatos_ schreef op donderdag 15 november 2012 @ 22:38:
[...]
Ja alleen heb ik daar geen tijd voor, dus dat gaat em niet echt worden.Bovendien kan ik niet bij de productieserver.
Simpelste oplossing : Tijd maken.
Met Fiddler ben ik erachter gekomen dat IIS alle binaire data van alle plaatjes gaat lopen utf-8 encoden en dan alsnog met het correcte content-type binair op de lijn kwakken. Hoe evil kun je zijn?!
Simpel gezegd : Niet standaard behaviour. Dus of je zit zelf iets te vogelen of je hebt iets geladen wat f*cked up is, simpelste oplossing : IIS herinstalleren of alternatieve webserver erop knallen because something is f*cked.

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Topicstarter
RobIII schreef op donderdag 15 november 2012 @ 23:28:
[...]

Wait. Whut :? Kun je dat nogmaals uitleggen en hoe je tot die conclusie gekomen bent? Want die bewering (en de rest van die alinea) does not compute zeg maar :X
Als ik de binaire data van een png op het filesystem vergelijk met wat IIS ervan gebakken heeft, zie ik dat alle bytes stuk voor stuk utf-8 encoded worden. Die encoding kan ik op het oog wel herkennen.

Does not compute, nee, en daarom gaat het ook zo knetterhard de mist in :)

日本!🎌


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
_Thanatos_ schreef op vrijdag 16 november 2012 @ 12:52:
Als ik de binaire data van een png op het filesystem vergelijk met wat IIS ervan gebakken heeft, zie ik dat alle bytes stuk voor stuk utf-8 encoded worden. Die encoding kan ik op het oog wel herkennen.
Bytes zijn bytes; die kun je niet "utf-8 encoden". Dus ik ben eens héél benieuwd wat je ziet dan. Heb je een screenshot of kun je een snippet posten?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
RobIII schreef op vrijdag 16 november 2012 @ 13:00:
[...]

Bytes zijn bytes; die kun je niet "utf-8 encoden".
En als er nou eens iets is dat de binaire content v/e bestand als tekstuele content in unicode interpreteert? Dan kan het toch echt die 'tekst' als UTF-8 encoded bytes naar een client naar buiten sturen.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
R4gnax schreef op vrijdag 16 november 2012 @ 13:04:
[...]


En als er nou eens iets is dat de binaire content v/e bestand als tekstuele content in unicode interpreteert? Dan kan het toch echt die 'tekst' als UTF-8 encoded bytes naar een client naar buiten sturen.
Ik zie alleen in de verste verte niet hoe IIS dat "uit zichzelf, spontaan" zou doen.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
RobIII schreef op vrijdag 16 november 2012 @ 13:10:
[...]

Ik zie alleen in de verste verte niet hoe IIS dat "uit zichzelf, spontaan" zou doen.
Ik zeg enkel dat je binaire content (bytes) wel degelijk kunt UTF-8 encoden. IIS zal dat uiteraard niet spontaan uit zichzelf doen. Dan moet je haast wel ergens een foute module of handler geregistreerd hebben staan.
Pagina: 1