La Red de Conocimientos Pedagógicos - Currículum vitae - rust actix_web resuelve problemas entre dominios

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:

.