Anzeige

Syntax-Error auf Ajax-Request an eine CGI

Syntax-Error auf Ajax-Request an eine CGI | PSD-Tutorials.de

Erstellt von Crackp0t, 12.05.2010.

  1. Crackp0t

    Crackp0t Aktives Mitglied

    Dabei seit:
    09.11.2006
    Beiträge:
    306
    Geschlecht:
    männlich
    Software:
    Adobe Production Premium, GIMP, NP++, Aptana Studio, Eclipse
    Syntax-Error auf Ajax-Request an eine CGI
    Hi, ich kloppe mich immer noch mit Ajax und bin auf ein neues Hindernis gestoßen:

    [​IMG]

    Diese Meldung kommt, wenn ich mit der Funktion

    PHP:
    1.     $(".trigger").click(function(){
    2.         var data = "";
    3.         function clear(){
    4.             $("#content").empty();
    5.         }
    6.         function err(){
    7.             $("#content").html('<p id="error">Failed to get data from server</p>');
    8.         }
    9.         function suc(sdata){
    10.             $("#content").html(sdata);
    11.         }
    12.         ajaxFN("includes/ajax_contentTest.cgi", data, err, clear, suc);
    13.     });
    14.  
    15. function ajaxFN(surl, sdata, serror, sbefore, ssuccess){
    16.         $.ajax({
    17.             type: "get",
    18.             dataType: "html",
    19.             cache: false,
    20.             url: surl,
    21.             data: sdata,
    22.             before: sbefore,
    23.             error: serror,
    24.             success: ssuccess
    25.         });
    26.     }
    ein request an die CGI-Datei

    Code (Text):
    1. #!/bin/bash
    2.  
    3. echo Content-Type: text/html
    4.  
    5. $QUERY_STRING
    6.  
    7. 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: 12.05.2010
    #1      
  2. Crackp0t

    Crackp0t Aktives Mitglied

    Dabei seit:
    09.11.2006
    Beiträge:
    306
    Geschlecht:
    männlich
    Software:
    Adobe Production Premium, GIMP, NP++, Aptana Studio, Eclipse
    Syntax-Error auf Ajax-Request an eine CGI
    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 (Text):
    1. 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.
     
    #2      
  3. saila

    saila Moderatorle

    Dabei seit:
    21.06.2006
    Beiträge:
    2.239
    Geschlecht:
    männlich
    Ort:
    50°48'23.69" N 7°14'22.19" O
    Software:
    Eclipse, PHP5 OO, MySQL5, CSS(auch Barrierefrei), JS, Symfony
    Syntax-Error auf Ajax-Request an eine CGI
    AW: Syntax-Error auf Ajax-Request an eine CGI

    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 (Text):
    1.  
    2. $(function() {
    3.     $('#deine_id, .oder_class').click( function() {
    4.         $.ajax({
    5.             type: 'POST',
    6.             url: '/file.cgi',
    7.             data: {
    8.                 'param': 'was willst du',
    9.                 // hier kannst du weitere parameter zur übergabe festlegen
    10.             },
    11.             success: function(data) {
    12.                 alert(data);
    13.             },
    14.             error: function(msg) {
    15.                 alert('Das war wohl nichts\n'+ msg);
    16.             }
    17.         });
    18.     });
    19. });
    20.  
     
    #3      
  4. Crackp0t

    Crackp0t Aktives Mitglied

    Dabei seit:
    09.11.2006
    Beiträge:
    306
    Geschlecht:
    männlich
    Software:
    Adobe Production Premium, GIMP, NP++, Aptana Studio, Eclipse
    Syntax-Error auf Ajax-Request an eine CGI
    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 ;)
     
    #4      
  5. saila

    saila Moderatorle

    Dabei seit:
    21.06.2006
    Beiträge:
    2.239
    Geschlecht:
    männlich
    Ort:
    50°48'23.69" N 7°14'22.19" O
    Software:
    Eclipse, PHP5 OO, MySQL5, CSS(auch Barrierefrei), JS, Symfony
    Syntax-Error auf Ajax-Request an eine CGI
    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.
     
    #5      
  6. Crackp0t

    Crackp0t Aktives Mitglied

    Dabei seit:
    09.11.2006
    Beiträge:
    306
    Geschlecht:
    männlich
    Software:
    Adobe Production Premium, GIMP, NP++, Aptana Studio, Eclipse
    Syntax-Error auf Ajax-Request an eine CGI
    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.)
     
    #6      
  7. saila

    saila Moderatorle

    Dabei seit:
    21.06.2006
    Beiträge:
    2.239
    Geschlecht:
    männlich
    Ort:
    50°48'23.69" N 7°14'22.19" O
    Software:
    Eclipse, PHP5 OO, MySQL5, CSS(auch Barrierefrei), JS, Symfony
    Syntax-Error auf Ajax-Request an eine CGI
    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.
     
    #7      
  8. Crackp0t

    Crackp0t Aktives Mitglied

    Dabei seit:
    09.11.2006
    Beiträge:
    306
    Geschlecht:
    männlich
    Software:
    Adobe Production Premium, GIMP, NP++, Aptana Studio, Eclipse
    Syntax-Error auf Ajax-Request an eine CGI
    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.
     
    #8      
  9. saila

    saila Moderatorle

    Dabei seit:
    21.06.2006
    Beiträge:
    2.239
    Geschlecht:
    männlich
    Ort:
    50°48'23.69" N 7°14'22.19" O
    Software:
    Eclipse, PHP5 OO, MySQL5, CSS(auch Barrierefrei), JS, Symfony
    Syntax-Error auf Ajax-Request an eine CGI
    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.
     
    #9      
x
×
×