JSON-RPC per Ajax-Request

  • Hallo,

    ich bin seit längerer Zeit auf der Suche nach einer Möglichkeit das Ergebnis der JSON-RPC abzurufen, ohne zwischenschnittstelle zu PHP. Am liebsten per AJAX über jQuery für eine eigene Web-App.

    Dabei hapert es schon beim einfachen Aufruf der 'RpcInfo.GetServerSettings'. Ich bekomme zwar einen 200 Status zurück, allerdings ist der Body 'undefined'.

    Mit der PHP-API erhalte ich die richtigen Informationen, also denke ich das irgendetwas an dem Request noch nicht stimmt.
    LOGIN-DATEN und HOST wurden aus Sicherheitsgründen maskiert!



    Habe ich vielleicht irgendeine Berechtigung vergessen, oder fehlt ein Parameter im Header für den Request?

    Authentifizierung scheint ja zu funktionieren, sonst würde ich sicherlich keinen 200er bekommen. Oder ist das rein technisch vielleicht gar nicht möglich, den Response per Ajax korrekt zu bekommen?

    Hat jemand hier eine Idee, oder bin ich hier falsch?


    Ich würde mich über eine kurze Rückmeldung freuen.


    Gruß

    Vivien

  • Hallo Vivien,

    wenn ich das richtig sehe, dann nutzt du node.js, oder?

    Der request-Aufruf scheint nicht ganz korrekt zu sein. Wenn man statt dem .on('response', ...) eine Callback-Funktion mit an den Aufruf übergibt, dann erhält man dort auch den response-Body. Der GREYHOUND Server liefert Exceptions als JSON-Objekt zurück und lässt dabei den HTTP-Code auf 200.

    Die Authentifizierung scheint beim request Paket von node.js über einen "auth" Parameter zu laufen - scheinbar überschreiben die den "Authorization" Header damit.


    Mit folgendem Code funktioniert es bei mir:

    Da der Basic Auth Code nicht mehr per Hand Base-64 codiert werden muss, kannst du dann im Prinzip auch das "btoa" Paket weglassen. ;-)