location.href - String wird zu lang

flux

Grünschnabel
Hallo Leute !

Habe Folgendes Problem:

Ich verwende Java Servlets und baue mir auf Client-Seite, also am Frontend, per JavaScript eine URL zusammen, die viel Text enthält, den der User bei sich eingeben kann....

sieht ca. so aus:

var link = "http://www.XYZ.de?param=BLA&Param2=BLA2..."

nur wenn diese BLA, BLA2 s und so weiter zu lang werden und ich dann per

location.href = link;

auf die nächste Seite verweisen will, gibts ab ner bestimmten Länge (so ca. 2000 Zeichen) einen JavaScript - Synthax - Fehler....

woran kann das liegen ?
kennt jemand vielleicht das problem ?
oder noch besser sogar eine lösung dafür

Danke für alle Tips :-) !

mfg, Stefan.
 
Das liegt daran, dass, je nach Browser, die URL auf ca. 2Kb beschränkt ist.

Abhilfe. Nicht mit der Get-Methode, sondern mit einem Post-Formular arbeiten.
 
hi fabian !

erstmal danke für die schnelle antwort !

bist du sicher, das die url eingeschränkt ist ? wenn ich z.b. von hand eine URL von z.b. ca. 6000 zeichen in die adress - zeile meines Internet Explores kopiere, lädt er die gewünschte seite ohne probleme.....

aber das mit GET <=> POST könnt ich mal testen ;-))

allerdings, auch OHNE überhaupt ein formular zu benutzen, gibts den fehler, siehe folgende kleine test-seite, die einfach statisch eine Seite mit nem Riesen-Dummy-Parameter lädt....

PHP:
<html>
<head>
<title></title>
<script language="JavaScript">
<!--

 function testfkt() {

    var link = "http://www.focus.de?ANFANG--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------DEANFANG------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------";

    location.href = link;
 }

//-->
</script>

</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">

    <textarea id="textfeld" cols=100 rows=20>afad</textarea>
    <br><br>
    <a href="javascript:testfkt();">test it..</a>
</body>
</html>


Gruß, Flux
 
Zuletzt bearbeitet von einem Moderator:
allerdings, auch OHNE überhaupt ein formular zu benutzen, gibts den fehler
Ernste Frage: hast du `was anderes erwartet?

Dass es geht, wenn man die URL direkt in die Adress-zeile eingibt kann daran
liegen, dass der Browser diese Eingabene eventuell direkt kürzt!
 
sorry für den code ohne [ code] ;-)

hmmm, um ehrlich zu sein, hab ich darüber gar net nachgedacht.....

ich verwende überhaupt kein formular - submit, um die daten abzuschicken !

Hab einfach ein paar textareas, die der User befüllen kann, dann klickt er auf einen Hyperlink namens "speichern", löst dadurch eine JavaScript-Funktion aus, die per document.all.TextArea_Name.value die Eingaben ausliest und zu einer URL zusammenbaut.....

ist dann wohl anscheinend nicht so die günstige lösung wie ?
 
Textareas per Get zu übergeben, ist grundsätzlich keine gute Möglichkeit, da der
Benutzer dort beliebig viel Text eingeben kann, was (schnell) die 2K Grenze er-
reichen kann.

Und document.all ist auch nicht schön, da es ausschließlich der Internet Explor-
er untersützt, und andere Browser stark im Kommen sind (in meiner Traumwelt
jedenfalls :rolleyes: )

Und wenn du schon Textareas benutzt, kannst du auch gleich ein Formular mit
einbauen, da ersparst du dir dann sogar das JavaScript ;)
Code:
<form action="ziel.php" method="post" name="PostForm">
    <textarea style="width:300px;height:100px;" name="TextEingabe"></textarea>
    <br>
    <br>
    <input type="submit" value=" Weiter ">
    <br>
    <br>
    <!-- und das Formular mit einem Link abschicken: -->
    <a href="ziel.php" onClick="window.document['PostForm'].submit(); return false;">Abschicken</a>
</form>
Allerdings musst du jetzt natürlich auch die Datei anpassen, die die Daten
auswerten soll.
(Ich bin jetzt einfach `mal von PHP ausgegangen)

hth
 
Hi again !

>>>Textareas per Get zu übergeben, ist grundsätzlich keine gute Möglichkeit, da der
Benutzer dort beliebig viel Text eingeben kann, was (schnell) die 2K Grenze er-
reichen kann.

also gibt es diese Grenze bei 2KB wußte ich (vor diesem Problem) überhaupt nicht.....

>>> Und document.all ist auch nicht schön, da es ausschließlich der Internet Explor-
er untersützt, und andere Browser stark im Kommen sind

schon klar, aber ich verwende hier (ist eine Intranet-Anwendung) ausschliesslich Internet Explorer 6, deswegen geht das schon :-)

>>> Und wenn du schon Textareas benutzt, kannst du auch gleich ein Formular mit
einbauen, da ersparst du dir dann sogar das JavaScript

stimmt, werd ich jetzt wohl auch so machen, hab ich nur beim ersten entwurf nicht gemacht, da ich von diesem Problem nichts wußte.... tja, wieder ein Stück schlauer :-)

Danke nochmals !

Gruß, Flux.
 

Neue Beiträge

Zurück