rust actix_web resuelve problemas entre dominios
Al realizar servicios web, el sitio principal se configura con fb.net y el otro servicio de lista de miembros es m1.fb.net, lo que provocará un problema entre dominios. Utilice XML Http Request o fetch para emitir una solicitud HTTP en el navegador. Si alguno de los protocolos HTTP, nombres de host o puertos no coincide con la dirección de la página web actual, el navegador limitará el resultado de la respuesta por razones de seguridad. El problema se llama problemas entre dominios.
Consulte: /a/1190000012550346
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS
Solución Hay muchas formas de resolver problemas entre dominios, como jsonp, iframe, etc. Pero aquí utilizo los campos acordados en el protocolo HTTP para resolver este problema, que también es la solución más limpia y perfecta. Para manejar escenarios especiales con solicitudes entre dominios, el protocolo HTTP tiene un campo de encabezado de respuesta especial Access-Control-Allow-Origin, que significa que el origen al que se permite acceder. El valor puede ser el comodín *, lo que permite todo. , o escribiendo un valor de Origen específico.
En actix-web, necesitamos cooperar con actix_cors para manejar la configuración de solicitudes entre dominios. El siguiente es un ejemplo
Cargo.toml
. main.rs
Pruébelo
Si cambiamos el origen a otro nombre de dominio, se informará un error
Error 400, mensaje
Solicitudes de origen no permitidas, y http y https se consideran orígenes diferentes y es necesario agregar soporte.
Si necesita permitir todos los orígenes, es decir, sin restricciones, utilice el signo * como comodín.
En términos generales, esto no es recomendable,
Por supuesto, si se usa nginx como carga, también se puede implementar en nginx. En este momento, no es necesario implementar el servicio de back-end de esta manera; de lo contrario, puede ocurrir:
.