Cómo configurar una solicitud ajax para enviar encabezados de solicitud entre dominios
El cliente sigue la escritura original. Lo que debe abordar es la configuración del encabezado de respuesta del servidor
1.
header(' Access-Control-Allow-Origin: *'); //Admite acceso completo al nombre de dominio, no es seguro, debe fijarse en la URL del cliente después de la implementación
header('Access -Control-Allow-Methods: POST, GET, OPTIONS, DELETE'); //Acciones http admitidas
header('Access-Control-Allow-Headers: x-requested-with, content-type' ); //Encabezado de respuesta, agregue según sus necesidades.
2. La segunda parte comprende la "solicitud previa" de navegadores como IE Chrome para solicitudes entre dominios y que requieren la configuración de parámetros personalizados de encabezados, es decir, si se encuentra una solicitud entre dominios. y los encabezados están configurados, todas las solicitudes ¡Se necesitan dos pasos para completarse!
A Paso 1: Enviar una solicitud de OPCIONES previa a la solicitud. En este momento, el servidor necesita responder a la solicitud de OPCIONES. Generalmente, se puede utilizar una respuesta 202 sin devolver ninguna información de contenido. (Quienes puedan ver este manuscrito, no creo que no puedan procesar una solicitud de opciones en segundo plano)
B Paso 2: El servidor aceptó la solicitud después del primer paso de la solicitud. , el navegador ejecuta automáticamente el segundo paso y envía la solicitud real. En este momento, la mayoría de las personas encontrarán que la solicitud fue exitosa, pero algunas personas encontrarán que la solicitud fue exitosa pero no se devolvió información. ¡Porque su encabezado de solicitud personalizado no existe en la respuesta del servidor!
Al observar la salida de la consola, encontrará un problema:
"El encabezado de solicitud XXXXXX no existe en la lista Access-Control-Allow-Headers" IE,
El campo de encabezado de solicitud xxxxxx no está permitido por Access-Control-Allow-Headerchrome
Esto se debe a que su encabezado de solicitud XXXX no está permitido en el lado del servidor~
El único La forma de encontrar este problema es modificarlo. Se hace en el lado del servidor. Por ejemplo: si necesita configurar un encabezado personalizado como el tipo de solicitud, entonces debe configurar el encabezado ('Access-Control-Allow-Headers: x-requested). -with, content-type, requesttype'); en el lado del servidor. Experimentémoslo nosotros mismos. Esta sintaxis se basa en "," para separar qué encabezados deben configurarse en el encabezado de respuesta del servidor. solicitud, de lo contrario el cliente nunca podrá enviarla.
En este punto, la tarea de modificación del encabezado http entre dominios de JavaScript/ajax se ha completado perfectamente.