Antworten auf deine Fragen:
Neues Thema erstellen

Syntax-Error auf Ajax-Request an eine CGI

Crackp0t

Aktives Mitglied

Hi, ich kloppe mich immer noch mit Ajax und bin auf ein neues Hindernis gestoßen:



Diese Meldung kommt, wenn ich mit der Funktion

PHP:
    $(".trigger").click(function(){
        var data = "";
        function clear(){
            $("#content").empty();
        }
        function err(){
            $("#content").html('<p id="error">Failed to get data from server</p>');
        }
        function suc(sdata){
            $("#content").html(sdata);
        }
        ajaxFN("includes/ajax_contentTest.cgi", data, err, clear, suc);
    });

function ajaxFN(surl, sdata, serror, sbefore, ssuccess){
        $.ajax({
            type: "get",
            dataType: "html",
            cache: false,
            url: surl,
            data: sdata,
            before: sbefore,
            error: serror,
            success: ssuccess
        });
    }
ein request an die CGI-Datei

Code:
#!/bin/bash

echo Content-Type: text/html

$QUERY_STRING

echo '<p class="ans">'$QUERY_STRING'</p>'
sende.

Requests an andere Dateien funktionieren einwandfrei. Wisst ihr wo der Wurm ist? :eek:
//Edit: Ach ja und wo kommt immer dieser erster Parameter "_=1273663479559" her? Der ist irgentwie bei allen requests dabei, wobei die Zahl sich immer verändert.
 
Zuletzt bearbeitet:

Crackp0t

Aktives Mitglied

AW: Syntax-Error auf Ajax-Request an eine CGI

Eine neue Erkenntnis hab ich noch gewonnen:
Es scheint mit dieser Zeile des Headers zu tun zu haben:

Code:
Content-Type: application/x-www-form-urlencoded
Denn wenn ein anderer Request geschickt wird, fehlt dieser Parameter im Header. Der Unterschied zwischen den Requests ist, neben einer anderen Zeildatei natürlich, der GET Parameter, denn bei dem nicht-funktionierenden sind es 4 (+der rätselhafte erste, der mit _ beginnt), wärend es bei dem anderen nur der eine ist.
 

saila

Moderatorle

AW: Syntax-Error auf Ajax-Request an eine CGI

Hi, ich kloppe mich immer noch mit Ajax und bin auf ein neues Hindernis gestoßen:



Diese Meldung kommt, wenn ich mit der Funktion

PHP:
    $(".trigger").click(function(){
        var data = "";
        function clear(){
            $("#content").empty();
        }
        function err(){
            $("#content").html('<p id="error">Failed to get data from server</p>');
        }
        function suc(sdata){
            $("#content").html(sdata);
        }
        ajaxFN("includes/ajax_contentTest.cgi", data, err, clear, suc);
    });

function ajaxFN(surl, sdata, serror, sbefore, ssuccess){
        $.ajax({
            type: "get",
            dataType: "html",
            cache: false,
            url: surl,
            data: sdata,
            before: sbefore,
            error: serror,
            success: ssuccess
        });
    }
ein request an die CGI-Datei

Code:
#!/bin/bash

echo Content-Type: text/html

$QUERY_STRING

echo '<p class="ans">'$QUERY_STRING'</p>'
sende.

Requests an andere Dateien funktionieren einwandfrei. Wisst ihr wo der Wurm ist? :eek:
//Edit: Ach ja und wo kommt immer dieser erster Parameter "_=1273663479559" her? Der ist irgentwie bei allen requests dabei, wobei die Zahl sich immer verändert.

Muss man das verstehen was du vorhast?

Warum nicht einfach die $.ajax-Funktion verwenden und im Manual dazu steht wie was wo einzubinden ist. Abgesehen davon kannst du prüfen ob was funktioniert mit "alert('hier bin ich');" im success und im error.

Das ganze würde so aussehen:

Code:
$(function() {
    $('#deine_id, .oder_class').click( function() {
        $.ajax({
            type: 'POST',
            url: '/file.cgi',
            data: {
                'param': 'was willst du',
                // hier kannst du weitere parameter zur übergabe festlegen
            },
            success: function(data) {
                alert(data);
            },
            error: function(msg) {
                alert('Das war wohl nichts\n'+ msg);
            }
        });
    });
});
 

Crackp0t

Aktives Mitglied

AW: Syntax-Error auf Ajax-Request an eine CGI

Es wird success getriggert, die zurückgegebenen Daten werden jedoch nicht verarbeitet. (Siehe Screenshot)

Meine Funktion ist einfach eine Auslagerung des Requests, weil ich meinen Code so besser strukturieren kann und mehr kontrolle über die, durch das Ajax-Event ausgelösten, Funktionen habe.

Ich persönlich nutze außerdem die console-api für Firebug, statt mich durch 349067 alert() zu klicken ;)
 

saila

Moderatorle

AW: Syntax-Error auf Ajax-Request an eine CGI

Das ist im Grunde etwas unstimmig. Welche Kontrolle hättest du den gerne, wenn nicht über gelieferte Parameter? Das ist bei PHP, Perl und Java letztlich wurscht. Grundlegende Erkennung ist der gelieferte oder gesendete Hauptparameter.
 

Crackp0t

Aktives Mitglied

AW: Syntax-Error auf Ajax-Request an eine CGI

Mein Problem besteht auch in der 'normalen' Schreibweise über anonyme Funktionen und Strings in der übergabe des Objektes.

Kontrolle will ich nur auf die von den Ajax-Events ausgelösten Funktionen, da ich ja eine Funktionsreferenz übergebe. (So kann ich mir baukastenähnlich die jeweiligen Aktionen zusammenstellen.)
 

saila

Moderatorle

AW: Syntax-Error auf Ajax-Request an eine CGI

Das bedeutet, du willst mit dem im Grunde gesetzten Parameter die annonyme Funktion ausführen lassen - ohne zuvor zu prüfen was übergeben wird per if/ elsif ?

Grund der Frage wäre - wenn du if / elsif einsetzt, benötigst du keine annonymen subroutinen, sonden kannst definierte Routinen verwenden. Macht insovern Sinn, als dass du diese wiederum in einen entsprechende Klasse legen kannst und hier wiederum die Klasse die Prüfung abnimmt.
 

Crackp0t

Aktives Mitglied

AW: Syntax-Error auf Ajax-Request an eine CGI

Das klingt ganz gut. Nur mit den Klassen... Das ist so ne Sache... :rot:
Ich habe etwas Probleme, Klassen sinnvoll einzusetzen. Bin zu sehr das prozudurale Programmieren von C gewohnt.

Bei mir ist es so geregelt, dass der Validierungsprozess vor der Ajax-Prozedur stattfindet. Dort wird dann mit der besagten Verzweigung gearbeitet, welche die Funktion gegebenenfalls aufruft. Dies erweist sich jedoch wie beschrieben als schwierig, da das Request bzw die Serverantwort nicht sorecht stimmen will.


Ach ja und wenn das Produkt in Serienreife geht, ist natürlich eine umfangreiche serverseitige Validierung vorhanden, um Sicherheitsrisiken abzudecken.
 

saila

Moderatorle

AW: Syntax-Error auf Ajax-Request an eine CGI

Da ich derzeit in einem Perl-Projekt bin, ist mir die Problematik bekannt. Es hat sich erwiesen, dass über ajax lediglich Parameter übermittelt werden, welche in eine ganz normale if/ elsif Prüfroutine serverseitig laufen.

Falls du arrays benötigst, dann wäre der Zusatz bei ajax in Form von dataType: 'json' erforderlich. Damit kannst du serverseitig das Array per JSON aufbereiten und letztlich als Objekt beim Client abarbeiten. Für den Datenerhalt im success wäre dann var data = eval(data); erforderlich.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben