Daten aus Web-API mit Token abrufen

FlorianF

Grünschnabel
Hi Leute,

ich muss dazu sagen, das sich absoluter Neuling im Bereich JavaScript bin. Dennoch würde ich gerne Daten über die API aus einem Online-System abrufen. Hierfür wird eine Token benötigt. Leider scheitere ich schon an dem grundsätzlichen Abruf, da ich nicht weiss wie ich den Token im Code einbinden muss.

So sieht mein Code bisher aus:

Javascript:
<script src="jquery-3.3.1.min.js"></script>

    <script>
       
        $.getJSON("https://wertbar.weclapp.com/webapp/api/v1/customer", function( data ) {
            var items = [];
            $.each( data, function( key, val ) {
                items.push( "<li id='" + key + "'>" + val + "</li>" );
                });
             
            $( "<ul/>", {
                "class": "my-new-list",
                html: items.join( "" )
              }).appendTo( "body" );
        });
       
    </script

Damit erhalte ich dann aber im Browser ein Fehler:

Failed to load https://wertbar.weclapp.com/webapp/api/v1/customer: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 401.

Kann mir hier jemand helfen?

Besten Dank und viele Grüße
FF
 
schau mal, ob folgendes geht:

Code:
jQuery.ajax({
            method: "GET",
            url: 'https://wertbar.weclapp.com/webapp/api/v1/customer'
            headers: {
                 'X-Auth-Token' : 'Dein Token'
             },
            success: function(data)
            {
                alert(data);
            },
            error: function(data)
            {
                alert(data);
            },
        });

Du müsstest nur dein Token einsetzen.
 
Damit kommt der Fehler an anderer Stelle und lautet Uncaught SyntaxError: Unexpected identifier

32123881zn.png


Hier mal noch ein Auszug aus der Dokumentation, vielleicht hilft das:

32123918wc.jpg
 
Nach der URL muss noch ein Komma hin. Zudem habe ich den Headerbefehl leicht abgewandelt.

Code:
jQuery.ajax({
            method: "GET",
            url: 'https://wertbar.weclapp.com/webapp/api/v1/customer',
            headers: {
                'Authorization': 'Dein Token'
             },
            success: function(data)
            {
                alert(data);
            },
            error: function(data)
            {
                alert(data);
            },
        });
 
Hi,

ich denke, die Sicherheitsrichtlinien des Browsers (Same Origin Policy) verhindert die Kommunikation zwischen den unterschiedlichen Domains. Um das zu umgehen solltest du dich mit CORS (Cross-Origin Resource Sharing) auseinandersetzen:
- Using CORS
- Cross-Origin Resource Sharing (CORS)

Eine andere Möglichkeit könnte sein, den AJAX-Request (XHR) gegen deinen eigenen Server (= gleiche Domain) abzusetzen und die gewünschte API mittels CURL (siehe deine Beschreibung/Doku) anzufragen. Die Antwort gibst du bei Erfolg in der entsprechenden XHR-Callback-Funktion zurück.

Vielleicht hilft dir das weiter.

Ciao
Quaese
 
Ich versteh da nur Bahnhof :D Muss gestehen ich bin auch ganz neu hier im dem Thema.

Habe aber etwas anderes herausgefunden. Wenn ich die Daten über Excel PowerQuery abrufe geht es mit Benutzer=* und Kennwort=Token. Wie kann ich meine abfrage den umbauen, damit ich mich mit Benutzer und Kennwort anmelde und abrufe?
 
Zurück