Brauche mal Hilfe zum HTTPRequest Aufruf auf lokalem Server

Hier könnt ihr alle Fragen zu SpiderBasic austauschen.
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Brauche mal Hilfe zum HTTPRequest Aufruf auf lokalem Server

Beitrag von Kurzer »

Moin zusammen,

ich habe mir heute die SpiderBasic-Demo runtergeladen, weil ich prüfen möchte, ob ich damit ein bestimmtes Projekt umsetzen kann.

Ich möchte testweise einer PHP-Datei per POST Parameter übergeben. Das funktioniert soweit gut, aber leider nur, wenn ich die SpiderBasic-Datei compiliere und dann die erzeugten html und js Dateien in das Verzeichnis des lokalen Webservers kopiere und dann im Browser manuell die URL aufrufe.

Das wäre in meinem Fall http://127.0.0.1/spider/test.html

Wenn ich den Code per F5 starte, dann sieht die URL so aus: http://127.0.0.1:8080/SpiderBasic_Compilation0.html und der HttpRequest() schlägt fehl.

Der SB code sieht so aus:

Code: Alles auswählen

  Procedure HttpGetEvent(Success, Result$, UserData)
    If Success
      Debug Result$
    Else
      Debug "HTTPRequest(): Error"
    EndIf
  EndProcedure
  
  HTTPRequest(#PB_HTTP_Post, "http://127.0.0.1/spider/post.php", "wert1=Hallo&wert2=Welt", @HttpGetEvent())
Kann ich SB irgendwie konfigurieren, dass das temporäre Ausführen per F5 Taste in der richtigen Domäne ausgeführt wird und der HttpRequest() Aufruf klappt?
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Brauche mal Hilfe zum HTTPRequest Aufruf auf lokalem Ser

Beitrag von NicTheQuick »

Das ist glaube ich ein grundlegendes Problem. In der Regel ist es nicht erlaubt Post-Requests auf eine andere Domain-Port-Kombination zu senden. Das muss im Webserver erlaubt werden, in dem Fall auf der Seite des PHP-Webservers. Zum Beispiel durch den Header "Access-Control-Allow-Origin http://127.0.0.1:8080". Details dazu findest du im Netz. Wenn nicht nochmal fragen.

Edit:
Oder etwas ausführlicher. Dein Browser würde gerne den POST-Request machen. Da es eine andere Domain/Port-Kombination ist, fragt er aber erst mit dem OPTIONS-Request, ob er von der aktuellen Domain/Port-Kombi aus diesen Request ausführen darf. Daraufhin kann der Server das bestätigen oder nicht. Und danach entscheidet dein Browser, ob er es letztendlich tut.
Bild
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Brauche mal Hilfe zum HTTPRequest Aufruf auf lokalem Ser

Beitrag von Kiffi »

zusätzlich zu NicTheQuicks Antwort: Oftmals ist es hilfreich, wenn Du im Fehlerfall die Entwickler-Konsole des Browsers öffnest (meist mit <F12>) und Dir dort anschaust, was beispielsweise im Network-Tab steht. In Deinem Fall dürfte das ein CORS-Fehler sein.

Grüße ... Peter
Hygge
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: Brauche mal Hilfe zum HTTPRequest Aufruf auf lokalem Ser

Beitrag von Kurzer »

Danke euch beiden, ganz genau so ist es.

in den Devtools (F12) steht unter Network/Fehlern: "Access to XMLHttpRequest at 'http://127.0.0.1/spider/post.php' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource."

Ich recherchiere dazu heute mal im Netz.

Gruß Kurzer

PS: Ich kann ja unter Compiler-Options eine Webserveradresse eintragen (da steht jetzt localhost:8080), aber dort brauchts ja zwangsweise immer den Port dazu. 127.0.0.1:8080 funktioniert daher auch nicht (möglicherweise weil 127.0.0.1 <> 127.0.0.1:8080 ?)
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Benutzeravatar
helpy
Beiträge: 635
Registriert: 29.08.2004 13:29

Re: Brauche mal Hilfe zum HTTPRequest Aufruf auf lokalem Ser

Beitrag von helpy »

Kurzer hat geschrieben:PS: Ich kann ja unter Compiler-Options eine Webserveradresse eintragen (da steht jetzt localhost:8080), aber dort brauchts ja zwangsweise immer den Port dazu. 127.0.0.1:8080 funktioniert daher auch nicht (möglicherweise weil 127.0.0.1 <> 127.0.0.1:8080 ?)
Wenn Du zwingend einen Port eintragen musst, dann probiere: 127.0.0.1:80
Das ist der Standard-Port für WebServer.
Windows 10
PB Last Final / (Sometimes testing Beta versions)
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: Brauche mal Hilfe zum HTTPRequest Aufruf auf lokalem Ser

Beitrag von Kurzer »

Das hilft leider auch nicht. Da bekomme ich:
Webserver hat geschrieben:Objekt nicht gefunden!
Der angeforderte URL konnte auf dem Server nicht gefunden werden. Sofern Sie den URL manuell eingegeben haben, überprüfen Sie bitte die Schreibweise und versuchen Sie es erneut.

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.

Error 404
127.0.0.1
Apache/2.4.41 (Win64) OpenSSL/1.1.1c PHP/7.4.2
Dann fiel mir ein, dass ja alles in einem Unterverzeichnis liegt. Also habe ich in den Compiler-Options "127.0.0.1:80/spider" eingetragen und den gesamten Sourcecode auch direkt in das Webserver-Verzeichnis verschoben (htdocs\spider\), damit das temporäre compilat auch genau in diesem Verzeichnis erstellt wird (SpiderBasic_Compilation0.html).

Die im Browser angezeigt URL nach F5 siehr dann so aus: http://127.0.0.1/spider/SpiderBasic_Compilation0.html
Aber es tut sich gar nichts. Nur ein weißes Browsertab ohne Inhalt.

Daran ändert sich leider auch nichts, wenn ich den HttpRequest von
HTTPRequest(#PB_HTTP_Post, "http://127.0.0.1/spider/post.php", "wert1=Hallo&wert2=Welt", @HttpGetEvent())
auf
HTTPRequest(#PB_HTTP_Post, "post.php", "wert1=Hallo&wert2=Welt", @HttpGetEvent())

ändere.

Ich komme erst heute Nachmittag dazu weiter im Netz zu recherchieren, aber vielen Dank für eure Hinweise, so kann man einige Lösungsansätze schon mal ausschließen.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Benutzeravatar
helpy
Beiträge: 635
Registriert: 29.08.2004 13:29

Re: Brauche mal Hilfe zum HTTPRequest Aufruf auf lokalem Ser

Beitrag von helpy »

OK!

Noch etwas:
==> http://127.0.0.1/spider/ ... verweist auf ein bestimmtes lokales Verzeichnis!
==> http://127.0.0.1:8080/spider/ ... verweist auf ein bestimmtes lokales Verzeichnis (SpiderBasic-Projektverzeichnis)!

Sind die beiden Verzeichnisse identisch?
Windows 10
PB Last Final / (Sometimes testing Beta versions)
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: Brauche mal Hilfe zum HTTPRequest Aufruf auf lokalem Ser

Beitrag von Kurzer »

Ich habe jetzt mal direkt draufgeklickt auf deine links.

==> http://127.0.0.1/spider/ zeigt mir den korrekten Inhalt des Webserververzeicnnisses an.
==> http://127.0.0.1:8080/spider/ zeigt mir "Error 404: Not Found File not found" an.

127.0.0.1/spider nimmt aber der Compiler-Options Dialog nicht an, weil da der port fehlt. Spider will unbedingt ein : nach der Adresse haben.
Ich habe es auch schon mit 127.0.0.1:/spider in den Compiler-Options versucht, im Browser steht dann korrekt http://127.0.0.1/spider/SpiderBasic_Compilation0.html, aber halt wieder nur ein weißer Tab "mit ohne Alles".

PS: Ich würde mir ja auch ne Batch schreiben, die das F5 Compilat dann umkopiert, so dass ich im Browser nur einen Reload mache, aber das F5 Compilat sieht ja ganz anders aus als die compilierte Web-App.

Im F5 Compilat sind diverse Veerweise auf ein library-Verzeichnis.

Code: Alles auswählen

<script type="text/javascript" src="/spiderbasic/libraries/javascript/platform.js"></script>
<script type="text/javascript" src="/spiderbasic/libraries/javascript/init.js"></script>
<script type="text/javascript">dojoConfig.baseUrl = '/spiderbasic/libraries/javascript/'; </script>
Das Verzeichnis habe ich aber auch schon mal vom SpiderBasic Installationsverzeichnis in das Webserververzeichnis kopiert, so dass das F5 Compilat es eigentlich finden müsste, aber auch hier wieder nur der weite Browser-Tab.

PS2: Und leider habe ich in der IDE auch keinen Shortcut/Toolbar-Konfigeintrag für ein automatisertes "CreateApp" gefunden. Evtl. würde es mit einem manuellen Aufruf des Compilers gehen, so dass ich nicht F5 drücke sondern eine Batch aufrufe, die mir diese Datei als WebApp erzeugt. Muss ich mir heute Nachmittag mal genauer ansehen.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Benutzeravatar
helpy
Beiträge: 635
Registriert: 29.08.2004 13:29

Re: Brauche mal Hilfe zum HTTPRequest Aufruf auf lokalem Ser

Beitrag von helpy »

Ich nehme mal an, Du hast einen eigenen Webserver (http://127.0.0.1 wahrscheinlich Default-Port 80) aufgesetzt, der greift auf ein bestimmtes Verzeichnis zu.

SpderBasic startet einen eigenen Webserver, der ebenfalls die Dateien aus einem bestimmten Verzeichnis die Daten abruft. Dort wird mit Sicherheit auch die Datei SpiderBasic_Compilation0.html abgelegt und aufgerufen.

Die beiden Verzeichnisse sind mit großer Wahrscheinlichkeit unterschiedlich!
Und genau das ist das Problem!
Windows 10
PB Last Final / (Sometimes testing Beta versions)
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: Brauche mal Hilfe zum HTTPRequest Aufruf auf lokalem Ser

Beitrag von Kurzer »

Hmm, ja ich starte einen eigene Webserver, das ist richtig. Den brauche ich, weil die PHP Datei SQL Datenbankfunktionen enthalten wird, die ich lokal testen möchte.

Aber die beiden besagten Verzeichnnisse auf der Festplatte sind identisch.

Bild
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Antworten