0

http() an lokalen API Server

Hallo zusammen,

Ich habe mir einen einfachen lokalen REST API Server in Python mittels Flask eingerichtet, der mir erlaubt aus Ninox heraus über http()-Aufrufe Python Skripte auszuführen. Das klappt ganz gut, aber nur in eine Richtung. Ich kann aus Ninox z.B. über

http("GET", "http://127.0.0.1:5000/HelloWorld/200/20222022-ST")

Daten an meine Flask-App schicken. Dort wird der Aufruf auch korrekt mit der Meldung angenommen:

127.0.0.1 - - [13/Mar/2022 20:46:19] "GET /HelloWorld/200/20222022-ST HTTP/1.1" 200

Ich kann jedoch in Ninox keine Daten vom lokalen Server zurück empfangen. Der http-Aufruf in Ninox meldet immer "{"error":"Request has failed: error - "}". 

Über die requests Library in Python funktioniert das Zurücklesen der Daten problemlos. Auch in Postman werden die Daten empfangen. Nur Ninox scheint mit der Antwort meines Servers nicht zufrieden. Mit cURL sieht die Antwort so aus:

HTTP/1.0 200 OK

Content-Type: application/json

Content-Length: 62

Server: Werkzeug/1.0.1 Python/3.9.5

Date: Sun, 13 Mar 2022 19:46:19 GMT

 

{

  "result": {

    "Id": 200,

    "Nr": "20222022-ST"

  }

}

Wieso versteht Ninox die Antwort nicht?

4 Antworten

null
    • Torsten_Stang.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    ... das Problem hab ich hier auch - Ninox erlaubt keine Zugriffe auf private Netze, das ist irgendwann bei einer Version 3.x rausgefallen. Genaueres kann support@ninox.com mitteilen.

    • Stefan_Facsko
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Danke für die Information. Schade, eigentlich.

    Das wäre eine elegante Lösung, lokale Daten mit einer Ninox-Datenbank auszutauschen.

    • marcg2
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Stefan!

    Sendet Dein API Server auch im Header ein

    Access-Control-Allow-Origin: *
    

    mit? Der Ninox Client ist nichts anderes wie ein Web-Browser und hier greifen verschiedene Sicherheitskonzepte:

    https://de.wikipedia.org/wiki/Cross-Origin_Resource_Sharing
    https://de.wikipedia.org/wiki/Same-Origin-Policy

    In PHP würde das z.B. so aussehen (Wichtig: bevor Content heraus gesendet wird!)

    header('Access-Control-Allow-Origin: *');
    • Stefan_Facsko
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Marc,

    Ich bin begeistert, es funktioniert!

    Vielen Dank!

Content aside

  • Status Answered
  • vor 2 JahrenZuletzt aktiv
  • 4Antworten
  • 119Ansichten
  • 3 Folge bereits