Verständnisfrage zu Cookies
Verfasst: 23.09.2020 15:51
Hallo in die Runde,
ich benötige Cookies für die Client Server Kommunikation.
Mit SpiderBasic kann ich Client seitig mittels Javascript ein Keks speichern und auch wieder lesen.
Mit PureBasic kann ich Server/CGI ebensfalls ein Cookie mitschicken (WriteCGIHeader(#PB_CGI_HeaderSetCookie, ..)
Aber wie schaffe ich es jetzt, dass der Browser bei jedem Ajax Request das Cookie wieder mitsendet?
Der Browser ruft zunächst CGI_Login() auf und bekommt in der Antwort ein Cookie mitgeliefert.
Wenn dann als nächstes CGI_HoleDaten() aufgerufen wird, wird aber kein Cookie mitgesendet.
Dann SetCookie("sessionid_2", "xyz") im Browser. Laut Debugger im Web-Speicher vorhanden, bis zum Sitzungsende.
Wird aber nicht mitgesendet.
Die Webseite läuft über : http://127.0.0.1:82/SpiderBasic_Compilation0.html
Der CGI Aufruf über : http://127.0.0.1:4001/cgi-bin/PbCgi.exe
Ich verstehe es nicht
Kann mich mal jemand bitte richtig rum aufs Pferd setzen?
ich benötige Cookies für die Client Server Kommunikation.
Mit SpiderBasic kann ich Client seitig mittels Javascript ein Keks speichern und auch wieder lesen.
Mit PureBasic kann ich Server/CGI ebensfalls ein Cookie mitschicken (WriteCGIHeader(#PB_CGI_HeaderSetCookie, ..)
Aber wie schaffe ich es jetzt, dass der Browser bei jedem Ajax Request das Cookie wieder mitsendet?
Code: Alles auswählen
#SpiderBite_Profile = "default"
;{ CGI
EnablePbCgi
#CGI_SUCCESS = "[success]"
ProcedureDll.s CGI_HoleDaten()
Protected Result.s, k
For k = 0 To CountCGICookies()-1
Result + CGICookieName(k)+": " + CGICookieValue(CGICookieName(k)) + #CRLF$
Next
ProcedureReturn Result
EndProcedure
ProcedureDll.s CGI_HoleDaten2()
ProcedureReturn CGI_HoleDaten()
EndProcedure
ProcedureDll.s CGI_Login (txt.s="")
WriteCGIHeader(#PB_CGI_HeaderSetCookie , "sessionid_1=" + txt)
ProcedureReturn #CGI_SUCCESS
EndProcedure
DisablePbCgi
;}
Procedure SetCookie(name.s, value.s)
! document.cookie = v_name + "=" + v_value + "; path=/;"
EndProcedure
Procedure CGI_HoleDaten2Callback( success, Result.s )
Debug "CGI_HoleDaten2 Result: " + Result
EndProcedure
Procedure CGI_HoleDatenCallback( success, Result.s )
Debug "CGI_HoleDaten Result: " + Result
SetCookie("sessionid_2", "xyz")
CGI_HoleDaten2()
EndProcedure
Procedure CGI_LoginCallback ( success, Result.s )
Debug "CGI_Login Result: " + Result
CGI_HoleDaten()
EndProcedure
CGI_Login ("abcdefg")
Wenn dann als nächstes CGI_HoleDaten() aufgerufen wird, wird aber kein Cookie mitgesendet.
Dann SetCookie("sessionid_2", "xyz") im Browser. Laut Debugger im Web-Speicher vorhanden, bis zum Sitzungsende.
Wird aber nicht mitgesendet.
Die Webseite läuft über : http://127.0.0.1:82/SpiderBasic_Compilation0.html
Der CGI Aufruf über : http://127.0.0.1:4001/cgi-bin/PbCgi.exe
Ich verstehe es nicht
Kann mich mal jemand bitte richtig rum aufs Pferd setzen?