Heim Backend-Entwicklung XML/RSS-Tutorial Details zum Senden sehr langer XML-Formulardaten mithilfe von XMLHTTP

Details zum Senden sehr langer XML-Formulardaten mithilfe von XMLHTTP

Mar 04, 2017 pm 05:24 PM

Wenn Sie eine große Menge XML als Teil der POST-Daten an Ihren IIS-Server senden – beispielsweise in einem TEXTAREA eines ASP-Formulars – erhalten Sie möglicherweise unerwartete Ergebnisse. Bei der Verarbeitung der Daten auf dem Server kann es aufgrund der Art und Weise, wie Sie die Daten verarbeiten, zu Fehlern kommen. Der Grund dafür ist, dass beim Zurücksenden von Daten an den Server eine (Daten-)Größenbeschränkung im POST-Feld besteht. Damit soll verhindert werden, dass mögliche Eindringlinge bei einem Denial-of-Service-Angriff (DoS) extrem große Datenmengen an den Server senden.

Diese Einschränkung schränkt auch Ihre Fähigkeiten ein. Aber es gibt Möglichkeiten, dieses Problem zu umgehen. Wenn Sie nicht auf das Senden von Daten per FORM-Übermittlung beschränkt sind, können Sie das xmlhttp-Objekt (ein DOM-Objekt im XML-Satz von Microsoft) verwenden, um das erforderliche XML zu senden:

var oXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
oXMLHTTP.open("POST", "xml_handler.asp", false);
oXMLHTTP.send(xml_to_send);
Nach dem Login kopieren

Da das Request-Objekt die IStream-Schnittstelle implementiert, können Sie das zu übermittelnde XML laden, indem Sie die Methode „load()“ des DOMDocument-Objekts verwenden:

Dim oDOM
Set oDOM = Server.CreateObject("MSXML2.DOMDocument")
oDOM.load Request
Nach dem Login kopieren

Wenn Sie nur die Verwendung von FORM Submit verwenden dürfen, ist dies möglich Überwinden Sie dieses Limit, indem Sie mehrere TEXTAREA oder INPUT einreichen. Die ersten beiden können wieder zusammengesetzt werden, sobald der Server die FORM-Daten empfängt:

var MAXLEN = 90000;
var oForm = document.createElement("FORM");
oFORM.method = "POST";
oFORM.action = "xml_handler.asp";
oFORM = document.body.appendChild(oFORM);
var s = document.someForm.txtXML.value;
if (s.length > MAXLEN) {
    while (s.length > MAXLEN) {
        var o = document.createElement("INPUT");
        o.type = "hidden";
        o.name = "txtXML";
        o.value = s.substr(0, MAXLEN);
        oFORM.appendChild(o);
        s = s.substr(MAXLEN);
    }
    var o = document.createElement("INPUT");
    o.type = "hidden";
    o.name = "txtXML";
    o.value = s.substr(0, MAXLEN);
    oFORM.appendChild(o);
} else {
    var o = document.createElement("INPUT");
    o.type = "hidden";
    o.name = "txtXML";
    o.value = s;
    oFORM.appendChild(o);
}
Nach dem Login kopieren


Dieser Code wird erstellt ein neues FORM-Element, um die Übermittlung von Daten zu verarbeiten und diese im BODY-Element zu platzieren. Anschließend prüft es die Länge des XML-Codes, der an den Server übermittelt werden soll. Dieses XML befindet sich in einem TEXTAREA namens txtXML in someForm.

Wenn das XML größer als der 90.000 Zeichen lange MAXLEN ist, erstellt dieser Code mehrere versteckte INPUT-Elemente und setzt das Wertattribut auf die 90.000 Zeichen langen XML-Daten oder setzt es auf a Geben Sie am Ende des XML-Codes einen Wert ein, um die Daten in mehrere Teile aufzuteilen. Wenn die Größe dieser XML-Datei kleiner als MAXLEN ist, erstellt dieser Code lediglich eine Eingabe und legt den Wert entsprechend fest. Diese Daten werden dann zur Verarbeitung an den Server übermittelt.

Sie haben vielleicht bemerkt, dass ich jedem Feld des neuen Formulars denselben Namen zugewiesen habe – txtXML. Dies trägt dazu bei, die XML-Daten von anderen möglicherweise übermittelten Daten zu trennen und bietet eine einfache Möglichkeit, die XML-Daten neu zu organisieren. Beim Neuorganisieren der Daten benötigen Sie eine einfache Schleife, um die Daten in den Feldern zu verbinden:

Dim str, fld
For Each fld In Request.Form("txtXML")
    str = str & fld
Next
Nach dem Login kopieren


Da für jedes FORM-Element ein Feldsatz erstellt wurde, können Sie dies tun Iterieren Sie über Felder mit demselben Namen. Solange Sie FORM-Elemente auf der Clientseite in der richtigen Reihenfolge erstellen, müssen Sie sich keine Gedanken über die Reihenfolge machen, in der die Felder durchlaufen werden. Dies kann einfach über die appendChild()-Methode von FORM erreicht werden.

Daten werden auf dem Client von links nach rechts und von oben nach unten übermittelt. Wenn Sie also das INPUT-Element an das Ende des FORM-Elements anhängen, werden die Daten immer in derselben Reihenfolge empfangen.

Wenn Sie eine große Datenlösung implementieren möchten, z. B. die Übertragung großer Excel-Datenmengen vom Client-Computer auf den Server, sollten Sie noch einmal darüber nachdenken, ob Sie die FORM-Übermittlung verwenden oder die Daten logisch aufteilen möchten in kleinere Teile. Da Sie das Dateityp-INPUT-Element nicht verwenden können, besteht die kreativste Lösung darin, die Daten lokal in XML zu konvertieren und sie dann an den Server zu senden. Die Daten werden wiederum auf dem Server gespeichert, bis eine weitere Verarbeitung erforderlich ist.

Natürlich gibt es möglicherweise einen besseren Weg, dieses Problem zu lösen. Aber wenn Sie nicht viel Zeit haben, brauchen Sie nur eine schnelle, brauchbare Lösung.

Im Folgenden finden Sie Einzelheiten zur Verwendung von XMLHTTP zum Senden ultralanger XML-Formulardaten. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Kann ich eine XML-Datei mit PowerPoint öffnen? Kann ich eine XML-Datei mit PowerPoint öffnen? Feb 19, 2024 pm 09:06 PM

Können XML-Dateien mit PPT geöffnet werden? XML, Extensible Markup Language (Extensible Markup Language), ist eine universelle Auszeichnungssprache, die häufig im Datenaustausch und in der Datenspeicherung verwendet wird. Im Vergleich zu HTML ist XML flexibler und kann eigene Tags und Datenstrukturen definieren, wodurch die Speicherung und der Austausch von Daten komfortabler und einheitlicher werden. PPT oder PowerPoint ist eine von Microsoft entwickelte Software zum Erstellen von Präsentationen. Es bietet eine umfassende Möglichkeit

Was bedeutet der http-Statuscode 520? Was bedeutet der http-Statuscode 520? Oct 13, 2023 pm 03:11 PM

Der HTTP-Statuscode 520 bedeutet, dass der Server bei der Verarbeitung der Anfrage einen unbekannten Fehler festgestellt hat und keine genaueren Informationen bereitstellen kann. Wird verwendet, um darauf hinzuweisen, dass bei der Verarbeitung der Anforderung durch den Server ein unbekannter Fehler aufgetreten ist, der durch Serverkonfigurationsprobleme, Netzwerkprobleme oder andere unbekannte Gründe verursacht werden kann. Dies wird normalerweise durch Serverkonfigurationsprobleme, Netzwerkprobleme, Serverüberlastung oder Codierungsfehler verursacht. Wenn Sie auf einen Fehler mit dem Statuscode 520 stoßen, wenden Sie sich am besten an den Website-Administrator oder das technische Support-Team, um weitere Informationen und Unterstützung zu erhalten.

Verstehen Sie gängige Anwendungsszenarien der Webseitenumleitung und verstehen Sie den HTTP-301-Statuscode Verstehen Sie gängige Anwendungsszenarien der Webseitenumleitung und verstehen Sie den HTTP-301-Statuscode Feb 18, 2024 pm 08:41 PM

Verstehen Sie die Bedeutung des HTTP 301-Statuscodes: Häufige Anwendungsszenarien der Webseitenumleitung. Mit der rasanten Entwicklung des Internets werden die Anforderungen der Menschen an die Webseiteninteraktion immer höher. Im Bereich Webdesign ist die Webseitenumleitung eine gängige und wichtige Technologie, die über den HTTP-301-Statuscode implementiert wird. In diesem Artikel werden die Bedeutung des HTTP 301-Statuscodes und häufige Anwendungsszenarien bei der Webseitenumleitung untersucht. Der HTTP-Statuscode 301 bezieht sich auf eine permanente Weiterleitung (PermanentRedirect). Wenn der Server die des Clients empfängt

HTTP 200 OK: Verstehen Sie die Bedeutung und den Zweck einer erfolgreichen Antwort HTTP 200 OK: Verstehen Sie die Bedeutung und den Zweck einer erfolgreichen Antwort Dec 26, 2023 am 10:25 AM

HTTP-Statuscode 200: Erkunden Sie die Bedeutung und den Zweck erfolgreicher Antworten. HTTP-Statuscodes sind numerische Codes, die den Status einer Serverantwort angeben. Darunter zeigt der Statuscode 200 an, dass die Anfrage vom Server erfolgreich verarbeitet wurde. In diesem Artikel wird die spezifische Bedeutung und Verwendung des HTTP-Statuscodes 200 untersucht. Lassen Sie uns zunächst die Klassifizierung von HTTP-Statuscodes verstehen. Statuscodes sind in fünf Kategorien unterteilt, nämlich 1xx, 2xx, 3xx, 4xx und 5xx. Unter diesen zeigt 2xx eine erfolgreiche Antwort an. Und 200 ist der häufigste Statuscode in 2xx

http-Anfrage 415-Fehlerlösung http-Anfrage 415-Fehlerlösung Nov 14, 2023 am 10:49 AM

Lösung: 1. Überprüfen Sie den Inhaltstyp im Anforderungsheader. 3. Verwenden Sie das entsprechende Codierungsformat. 5. Überprüfen Sie die serverseitige Unterstützung.

Wie verwende ich PHP-Funktionen zur Verarbeitung von XML-Daten? Wie verwende ich PHP-Funktionen zur Verarbeitung von XML-Daten? May 05, 2024 am 09:15 AM

Verwenden Sie PHPXML-Funktionen, um XML-Daten zu verarbeiten: XML-Daten analysieren: simplexml_load_file() und simplexml_load_string() laden XML-Dateien oder Strings. Auf XML-Daten zugreifen: Verwenden Sie die Eigenschaften und Methoden des SimpleXML-Objekts, um Elementnamen, Attributwerte und Unterelemente abzurufen. XML-Daten ändern: Fügen Sie neue Elemente und Attribute mit den Methoden addChild() und addAttribute() hinzu. Serialisierte XML-Daten: Die Methode asXML() konvertiert ein SimpleXML-Objekt in einen XML-String. Praxisbeispiel: Produkt-Feed-XML analysieren, Produktinformationen extrahieren, umwandeln und in einer Datenbank speichern.

Wie implementiert man HTTP-Streaming mit C++? Wie implementiert man HTTP-Streaming mit C++? May 31, 2024 am 11:06 AM

Wie implementiert man HTTP-Streaming in C++? Erstellen Sie einen SSL-Stream-Socket mit Boost.Asio und der asiohttps-Clientbibliothek. Stellen Sie eine Verbindung zum Server her und senden Sie eine HTTP-Anfrage. Empfangen Sie HTTP-Antwortheader und drucken Sie sie aus. Empfängt den HTTP-Antworttext und gibt ihn aus.

Welcher Statuscode wird bei einem HTTP-Anfrage-Timeout zurückgegeben? Welcher Statuscode wird bei einem HTTP-Anfrage-Timeout zurückgegeben? Feb 18, 2024 pm 01:58 PM

Die HTTP-Anfrage läuft ab und der Server gibt häufig den Statuscode 504GatewayTimeout zurück. Dieser Statuscode zeigt an, dass der Server bei der Ausführung einer Anforderung immer noch nicht in der Lage ist, die für die Anforderung erforderlichen Ressourcen abzurufen oder die Verarbeitung der Anforderung nach einer gewissen Zeit nicht abzuschließen. Es handelt sich um einen Statuscode der 5xx-Reihe, der darauf hinweist, dass beim Server ein vorübergehendes Problem oder eine Überlastung aufgetreten ist, was dazu führt, dass die Anfrage des Clients nicht korrekt verarbeitet werden kann. Im HTTP-Protokoll haben verschiedene Statuscodes spezifische Bedeutungen und Verwendungszwecke, und der Statuscode 504 wird verwendet, um Probleme mit der Zeitüberschreitung von Anfragen anzuzeigen. im Kunden

See all articles