apollo: Mozilla zeigt nur den HTML Source und interpretiert nicht

Hallo zusammen,

ich hab jetzt alles mal vereinfacht, damit ich den Sachverhalt leichter darstellen kann.

Überblick:
Also ich hab ne Login Page über die ich ein Programm in einer Oracle DB aufruf, dass mir dann den HTML Code zusammen bastelt und zurückliefert. IE versteht das wunderbar, aber Mozilla zeigt mir den Source Code an.

So ruf ichs auf:
<script language="javaScript">
if (is_ie5up || is_nav4up || is_opera5up)
  {
  document.write("<form method="POST" action="http://aitgl9:8888/oowa-install/servlet/oowa/aw92/DBoowasys.xwdevkit/xwd_init?a3webapp.glbweb/p.adm.init" target="_top">");
  }
</SCRIPT>
  <table border="0" cellpadding="0" cellspacing="10">
   <tbody>
    <tr>
     <td> Username
     </td>
     <td>

<input type="text" name="ID" size="29" value="">
     </td>
    </tr>
    <tr>
     <td> Password
     </td>
     <td>
      <input type="password" name="PASSWORD" size="29" value="">
      <input TYPE="hidden" NAME="VIRTDIR" VALUE="hostname:port/oowa-install/a3webapp" >

</td>
    </tr>
    <tr>
     <td> 
     </td>
<script language="javaScript">
if (is_ie5up || is_nav4up || is_opera5up)
{
document.write("<TD colSpan=2><INPUT name=Submit type=submit value=Login></TD>");
}
else
{
document.write("<TD>please use Netscape 4.7x or Internet Explorer 5.x</td>");
}
</SCRIPT>
    </tr>
   </tbody>
  </table>

Das zeigt IE an:
Hello World

Das zeigt Mozilla an:
<html>
<head>
<title>Machs jetzt endlich</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<font size="5">Hello World </font>
</body>
</html>

Kann mir jemand helfen?

Gruss Apollo

  1. Hola,

    Also ich hab ne Login Page über die ich ein Programm in einer Oracle DB aufruf, dass mir dann den HTML Code zusammen bastelt und zurückliefert.

    Dann gibt dein Programm den falschen Header aus.

    IE versteht das wunderbar

    Eben nicht. Nur kaputte Browser zeigen als Content-type text/html an, selbst wenn der Content-type nicht text/html ist.

    Markus Trusk.

    1. Hm aber in meiner Page geb ich doch explizit den Header als content="text/html; an.
      siehe Html text

      <html>
      <head>
      <title>Machs jetzt endlich</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      </head>
      <body bgcolor="#FFFFFF" text="#000000">
      <font size="5">Hello World </font>
      </body>
      </html>

      Oder stimmt an diesem Header was nicht?

      Gruss
      apollo

      1. Moin,

        Hm aber in meiner Page geb ich doch explizit den Header als content="text/html; an.
        siehe Html text

        Da beißt sich die Katze in den Schwanz: Wieso sollte der Browser ein Attribut eines HTML-Tags interpretieren, wenn er reinen Text bekommt. Also im HTML-Code zu sagen "dies ist HTML" ist ein wenig redundant. Die richtige[tm] Stelle um den richtigen Content-Type zu übermitteln ist der HTTP-Header. Installier dir mal die LiveHeaders-Extension für Mozilla und schau dir die Header der fraglichen Seite an. Achte besonders auf den Content-Type.

        --
        Henryk Plötz
        Grüße aus Berlin
        ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
        ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~
        1. Ok das heisst, ich kann den Meta Tag auch weglassen.

          Habs mal probiiert mit folgendem HTML Code.
          <html>
          <head>
          <title>Machs jetzt endlich</title>
          </head>
          <body bgcolor="#FFFFFF" text="#000000">
          <font size="5">Hello World </font>
          </body>
          </html>

          Mozilla kapiert irgendwie nicht, dass er den HTML Code interpretieren soll!

          Die LiveHeaders-Extension konnt ich auf der Mozilla Seite nicht finden, sorry.

          Gruss apollo

          1. Hallo apollo,

            Mozilla kapiert irgendwie nicht, dass er den HTML Code interpretieren soll!

            ließ dir doch bitte mal die Antworten die du bekommen hast aufmerksam durch. Wenn du nicht weißt was ein Header ist, empfehle ich dir auch noch zusätzlich die Lektüre von http://selfhtml.teamone.de/cgiperl/sprache/cginotwendig.htm#httpheader.

            Wenn du den HTTP-Header selbst nicht anzeigen kannst, gib uns bitte einfach mal den Link und wir schauen nach ob er stimmt oder nicht.

            Grüße,

            Peter

            --
            exp(i * PI) + 1 = 0
          2. Servus,

            da ich heute mit Perl über exakt das gleiche Problem gestoplert bin...

            Das müsste die allererste Zeile Deines Programmes oder Scripts sein, die ausgegeben wird.
            Wie schon gesagt es stammt aus meinem Perl Script.

            print "Content-type: text/html\n\n" ;

            und erst jetzt wird das HTML Zeug per print raus gegeben.

            Gruss Matze

          3. Hallo,

            Ok das heisst, ich kann den Meta Tag auch weglassen.

            IMHO koennte er was bringen, wenn Du die Datei lokal aufrufst (oder editierst), da in diesem Fall kein HTTP header existiert.

            Mozilla kapiert irgendwie nicht, dass er den HTML Code interpretieren soll!

            Die anderen Antworten und ich vermuten ja, dass vom Server der HTTP header content-type eben nicht text/html ist. Und dann interpretiert Mozilla das Empfangene auch nicht als html.

            Die LiveHeaders-Extension konnt ich auf der Mozilla Seite nicht finden, sorry.

            Heisst auch Live HTTP headers Extension. Brauchst Du aber eventuell gar nicht, da unter Page Info auch der "Type" angezeigt werden muesste (zumindest bei MozillaFirebird ist es so).

            Die Loesung Deines Problems steckt also nicht in irgendeiner Veraenderung der Datei, sondern vielmehr darin, dass Du Deinen Server ueberreden musst, im HTTP header den richtigen content-type anzugeben.

            Da ich aber nicht weiss, welchen Server Du benutzt, kann ich auch keine pauschale Loesung angeben.

            Gruesse, Alex.

          4. Ok hab kapiert was ihr alle meint und ihr habt Recht.

            Jetzt muss ich mal herausfinden wieso im Header
            Content Type text/plain drin steht.

            Ich danke euch für Eure Hilfe.

            Gruss Apollo

  2. Sei gegrüßt, edler Schreiberling!

    Also ich hab ne Login Page über die ich ein Programm in einer Oracle DB aufruf, dass mir dann den HTML Code zusammen bastelt und zurückliefert. IE versteht das wunderbar, aber Mozilla zeigt mir den Source Code an.

    Dein Programm kennzeichnet seine Ausgabe als einfachen Text.

    Weil Mozilla (und fast alle anderen Browser) ein weitestgehend friedliches Etwas ist, vertraut er Dir und zeigt die Daten auch als einfachen Text an, so wie Du es gewünscht hast.

    Der IE hingegen ignoriert Deinen Wunsch, untersucht stattdessen die von Dir gelieferten Daten und kommt zu dem Ergebnis, daß Du offenbar ein Trottel bist, der nicht weiß, was er tut und deshalb eine HTML-Seite als einfachen Text ausliefert. Weil der IE grundsätzlich der Meinung ist, daß er als Microsoft-Produkt sowieso klüger ist als der Rest der Welt, korrigiert er natürlich Deinen Wunsch nach einfachem Text und zeigt stattdessen eine HTML-Seite an.

    Deshalb hast Du jetzt das Problem, daß Du Deinen HTML-Quelltext im IE nicht wie gewünscht als HTML-Quelltext anzeigen kannst. Ist zwar gegen die allgemein akzeptieren Regeln, aber lässt sich leider nicht verhindern.

    Möchtest Du hingegen tatsächlich eine HTML-Seite angezeigt haben, solltest Du den Browsern auch mitteilen, daß da eine HTML-Seite kommt und nicht etwas, was als einfacher Text anzuzeigen ist. Setze die Angabe "Content-Type" im HTTP-Kopf auf "text/html", falls Du unter Windows arbeitest, wahrscheinlich besser noch "text/html; charset=windows-1252", ansonsten hast Du möglicherweise auch noch Probleme mit dem Eurosymbol und einfachen Anführungszeichen.

    Da Du nicht geschrieben hast, welche Programmiersprache Du verwendest, mußt Du leider selbst herausfinden, wie man das macht. Möglicherweise reicht es aber, wenn Du einfach die Zeile

    Content-Type: text/html; charset=windows-1252

    gefolgt von einer Leerzeile, beide Zeilen jeweils abgeschlossen mit den Zeilenschaltungen \r\n, ausgibst, bevor die eigentlichen Daten kommen.

    Möglicherweise möchtest Du Dich auch im HTTP-Protokoll informieren, insbesondere http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6 und http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.