La nostra applicazione Web ha un pulsante che dovrebbe inviare dati a un server sulla rete locale che a sua volta stampa qualcosa su una stampante.Come una pagina Web può inviare un messaggio alla rete locale
Finora è stato semplice: il pulsante ha attivato una richiesta AJAX POST a http://printerserver/print.php
con un token, quella pagina connessa all'applicazione Web per verificare il token e ottenere i dati da stampare e quindi stampare.
Tuttavia, ora stiamo distribuendo la nostra applicazione Web tramite HTTP (e preferirei non tornare indietro a HTTP per questo) e le versioni più recenti di Chrome e Firefox non rendono più la richiesta all'indirizzo HTTP, non lo fanno t inviare anche la richiesta per verificare le intestazioni CORS.
Ora, qual è un'alternativa moderna al protocollo incrociato XHR? Websockets soffre dello stesso problema? (Una ricerca su Google non ha chiarito qual è lo stato attuale qui.) Posso usare già i socket TCP? Preferirei non passare alle richieste GET, perché l'azione non è idempotente e potrebbe avere implicazioni pratiche con il precaricamento e il caching.
posso cambiare l'applicazione sul Printerserver in alcun modo (così ho potuto sostituirlo con NodeJS o qualcosa del genere), ma non posso cambiare browser degli utenti (a fidarsi di un certificato auto-firmato per Printerserver per esempio).
Solo un pensiero ma hai provato a utilizzare CURL per fare la tua richiesta? Poiché CURL effettua la propria sessione, non deve essere influenzato dal comportamento del browser. –
Ho pensato che sarebbe stato chiaro dalla domanda: macchina _printerserver_ e il browser dell'utente sono in una rete, il server web è su internet. – AndreKR
Se ho capito bene, stai provando a chiamare "http: //printerserver/print.php" da un sito Web HTTPS. Provare a eseguire il server "http: //printerserver/print.php" sulla porta 443 per supportare HTTPS, quindi le chiamate saranno sullo stesso protocollo. –