Me di cuenta de un extraño mensaje de advertencia cuando se mira en los recursos descargados a través de Google chrome inspector (F12):

Precaución provisional encabezados se muestra

Me encontré con algo que posiblemente pertinentes, Red de Panel: añadir precaución acerca de los encabezados de solicitud provisional, pero yo no podía entenderlo perfectamente. Las preguntas relacionadas con el puede ser encontrado Chrome bloquear las solicitudes así como XMLHttpRequest no se puede cargar. Descarga los recursos de mostrar precaución: Provisional se muestran los encabezados de.

Similar a la primera pregunta, mi recurso fue bloqueado, pero más tarde se cargan automáticamente el mismo recurso. A diferencia de la segunda pregunta, no quiero arreglar nada; quiero saber lo que significa este mensaje y por qué me la ha recibido.

  • Este problema también puede aparecer si el reuqest era enviar debido al dominio de conmutación por ejemplo, el envío de datos a través de ajax www.domain.tld con el dominio.tld o viceversa.
  • Existe un problema similar publicado en este ASÍ que la pregunta, pero no parece ser ninguna explicación posible para este Provisional Cabeceras Enviadas el tema. Cualquier solución concreta para esto? realmente molesto! He publicado esta pregunta alguna vez.
  • Hay una buena explicación por wvega. Y yo en realidad no estaba buscando una solución. Tenía curiosidad acerca de una razón.
  • Me ha ayudado cuando he apagado: chrome://flags/#site-isolation-trial-opt-out

31 Comentarios

  1. 313

    El recurso podría ser bloqueado por una extensión (AdBlock en mi caso).

    El mensaje es que hay debido a que la solicitud para recuperar ese recurso nunca fue realizada, por lo que los encabezados se muestran no son la cosa real. Como se explicó en el tema que usted hace referencia, el real encabezados se actualiza cuando el servidor responde, pero no hay ninguna respuesta si la solicitud fue bloqueado.


    La manera que he encontrado acerca de la extensión que estaba bloqueando mi recurso a través de la net-internals de la herramienta en Chrome:

    • Tipo chrome://net-internals en la barra de direcciones y pulse enter.
    • Abra la página que se está mostrando problemas.
    • Volver a net-internals, haga clic en eventos (###) y use el campo de texto para encontrar el evento relacionado con el recurso (el uso de partes de la dirección URL).
    • Por último, haga clic en el evento y ver si la información que se muestra le dice algo.
    • Shazz la respuesta es mejor. Ver este mensaje en el depurador siempre que el recurso se ha recuperado de la memoria caché del navegador sin preguntar al servidor si el contenido ha cambiado.
    • Creo que ambas respuestas son correctas, les dicen a los dos lados de la misma historia. El mensaje se muestra cuando la solicitud está bloqueado o los recursos que se cargan desde la caché, pero también después de cada solicitud de iniciado, mientras que el navegador está a la espera de una respuesta del servidor. Tan pronto como llega la respuesta, el mensaje desaparece y el real encabezados se muestran.
    • Si un analizado principalmente la página es redirigido, por ejemplo, example.com/a ->301->example.com/b y la página de destino respuestas con las de 200 y, a continuación, haga clic en inspector en la página de destino /b para ver los datos de cabecera, usted los conseguirá, etiquetados con «Provisional encabezados se muestra». Es correcto, porque, no analizaron la página de destino directamente. Si usted lo hace, usted obtiene los datos de cabecera sin la etiqueta.
    • Yo era capaz de determinar que ese era mi problema, porque cuando hice la anterior. Mi sitio https estaba llamando https archivo css que estaba haciendo una redirección 302 a la página http. De seguridad no permitir que el archivo de carga, y sólo mostró la provisional encabezados.
    • Hay una muy buena explicación de las múltiples razones por las que esto puede suceder: stackoverflow.com/questions/12009423/…
    • chrome://net-internals fue eliminado, cualquier otra manera de ver esto?
    • href=»https://chromium.googlesource.com/catapult/+/master/netlog_viewer/» >chromium.googlesource.com/catapult/+/master/netlog_viewer
    • A veces simplemente puede comprobar Disable cache casilla de verificación en DevTools. Se encuentra cerca de Preservar registro en la sección de la Red.
    • Muchas gracias!
    • Esta respuesta incorrecta. Te dicen que es debido a que la solicitud se ha hecho nunca, pero tengo la caché fuera y claramente se puede ver la respuesta de tomar de 2 a 5 segundos (gran solicitudes).

  2. 98

    Creo que sucede cuando la solicitud no se envía. Generalmente ocurre cuando se carga un caché de recursos.

    • No, 304 no modificado viene desde el servidor en respuesta a una solicitud condicional. Si se carga un caché de recursos y su navegador no tiene que comunicarse con el servidor, usted no conseguirá un 304 no modificado o cualquier estado HTTP en absoluto, porque una solicitud HTTP no se hizo.
    • Esto funciona para mí, cuando vi «Provisional encabezados, se muestran en el panel depurador, el código de estado de la solicitud era «200 OK (en caché)»
    • Vi esto con un trabajador del servicio de respuesta, por lo que creo que al menos en algunos casos, usted está en lo correcto acerca de la caché de la respuesta 🙂
    • Me cambio de caché de descuento en el dev tools y sigue apareciendo este mensaje. El estado de todos los archivos es de 200, no «(en caché)». Por lo que a veces podría ser debido a la caché, pero ciertamente no siempre.
  3. 28

    Para chrome v72+ lo resuelto para mí fue sólo esto:

    ir a chrome://flags/ y deshabilitar este 3 banderas

    • Deshabilitar el sitio de aislamiento
    • Habilitar el servicio de red
    • Se ejecuta el servicio de red en el proceso de

    o se puede hacer desde la línea de comandos :

    chrome --disable-site-isolation-trials --disable-features=NetworkService,NetworkServiceInProcess
    

    de por qué sucede esto?

    Parece que Google es la refactorización de sus Cromo motor en estructura modular, donde los diferentes servicios serán separados en módulos independientes y procesos. Ellos llaman a este proceso servicification. Servicio de red es el primer paso, la interfaz de usuario de servicio, servicio de Identidad y servicio de Dispositivos están por venir. Google proporciona la información oficial en el Cromo sitio del proyecto.

    es peligroso para cambiar eso?

    Un ejemplo es la creación de redes: una vez que tenemos un servicio de red que podemos elegir para que se ejecute fuera de proceso para una mejor estabilidad/seguridad, o en proceso si estamos con recursos limitados. fuente

    • Gracias! Esto funcionó para mí.
    • Yo era capaz de conseguir que esto funcione solo con «Habilitar el servicio de red» y «se Ejecuta el servicio de red en el proceso.»
    • Acabo de movilidad sitio de aislamiento y que trabajó para mí.
    • Esto funcionó en regular Chrome (v74), sin embargo la última versión de Chrome Canary (v76) es ahora falta el «#red-servicio de» bandera… no se Puede conseguir que esto funcione en Canarias sin ella.
    • Vi este tema en ambos localhost:8080 y google.com(!?). La desactivación de aislamiento de sitios fijos google.com pero no localhost. Deshabilitar sólo las otras dos opciones se fija para todos los casos.
    • Para mí la desactivación de la red de servicio fue suficiente
    • Solo tuve que desactivar esta opción: chrome://flags/#sitio-aislamiento-juicio-opt-out

  4. 22

    He encontrado con este problema, y me las arreglé para identificar una causa específica, que no está mencionado anteriormente en las respuestas a la pregunta.

    Estoy ejecutando un completo js pila, angular extremo frontal y el nodo final en SSL, y la API está en un dominio diferente que se ejecuta en el puerto 8081, así que me estoy haciendo CORS solicitudes y withCredentials como estoy soltando una cookie de sesión de la API de

    Tan específicamente mi escenario era: solicitud POST, withCredentials a puerto 8081 causado la «PRECAUCIÓN: provisional se muestran los encabezados de mensaje» en el inspector y, por supuesto, también bloqueó la solicitud todos juntos.

    Mi solución fue para configurar el apache para poder pasar la solicitud de la habitual SSL puerto 443 para el nodo SSL puerto 8081 (nodo tiene que ser en un puerto más alto ya que no puede ser ejecutado como root en prod). Así que supongo que Chrome no como peticiones SSL para no convencional puertos SSL, pero tal vez su mensaje de error podría ser más específico.

    • Que es el navegador de la política de mismo origen – tu página web y los recursos que son de lectura debe ser en el mismo puerto. developer.mozilla.org/en-US/docs/Web/Security/…
    • Impresionante gracias por la ayuda. Estoy usando webpacks dev server y fui capaz de simplemente agregar una regla de reescritura. '/graphql': { target: 'http://10.10.1.38:4000', changeOrigin: true }
    • Del mismo modo, he resuelto este problema mediante la adición de "proxy": "http://192.168.98.110:1234" a mi package.json en crear-reaccionar-proyecto de aplicación. A diferencia de la respuesta, que no voy a usar HTTPS en cualquier lugar dev, pero esto era necesario porque mi aplicación con la api y se encuentran en diferentes IPs.
  5. 11

    HTTP/2 Empujado recursos producirá Provisional headers are shown en el inspector de la misma teoría que @wvega publicado en su respuesta anterior.

    e.g: Desde el servidor empujó el recurso(s) al cliente (antes de que el cliente solicite), el navegador tiene los recursos almacenados en caché y por lo tanto el cliente nunca se hace necesario una de las solicitudes; Así, porque…

    …el verdadero encabezados se actualiza cuando el servidor responde, pero no hay ninguna respuesta si la solicitud fue bloqueado.

  6. 11

    Esto también puede suceder (de la cruz-las solicitudes de origen solamente) gracias a una nueva característica llamada sitio de aislamiento

    En esta página se detalla el problema y. Que es ir a chrome://flags/#site-isolation-trial-opt-out en chrome y cambiar esta configuración a «Opt-out» y volver a cargar chrome.

    Es un problema conocido. Sin embargo esa página dice que es fijo en chrome 68, pero yo estoy usando chrome 68 y todavía tengo el problema.

    • Si sus peticiones no son bloqueados (200 OK), su único suceder con CORS las solicitudes, y la falta de encabezado Cookie, desea comprobar esta respuesta. Gracias, @onlynone
    • ¿puede por favor explicar esto un poco más en detalle? me estoy encontrando con un problema similar, pero yo no entiende por qué. para obtener más información, por favor ver mi más reciente post. gracias.
  7. 10

    Mi situación es de origen cruzado relacionados.

    Situación: Navegador envía OPTIONS solicitud antes de enviar la petición de verdad como GET o POST. Backend developer olvida a lidiar con el OPTIONS solicitud, dejando que se vaya a través del código de servicio, haciendo que el tiempo de procesamiento demasiado tiempo. Más que el valor de tiempo de espera escribí en el axios de inicialización, el cual es de 5000 milisegundos. Por lo tanto, la petición de verdad que no se envió, y entonces me encontré con el provisional headers are shown problema.

    Solución: Cuando se trata de OPTIONS solicitud, api de servidor sólo un resultado, lo que hace la solicitud más rápido y la verdadera solicitud puede ser enviada antes de tiempo de espera.

  8. 6

    Dudo que mi respuesta está en el tiempo para ayudar a usted, pero otros podrían encontrar útil. He experimentado un problema similar con un Ajax de jQuery Post script que he creado.

    Resultó que había una errata en el atributo href de la etiqueta que yo estaba usando para despedir el post. Yo había escrito href=»javacsript:;» (invirtiendo la ‘s’ y la ‘c’ ).. esto debido a la secuencia de comandos para tratar de actualizar la página, mientras que el post estaba tratando de fuego. se ha corregido el error y funcionó perfectamente bien para mí.

    • Corrió hacia el mismo tipo de problema, no fue ningún error tipográfico, pero yo tenía un guión necesidad de recargar la página antes de que el POST fue despedido/completa.
  9. 4

    Este mensaje de error puede producirse cuando el sitio web está protegido mediante HSTS. Entonces, cuando alguien los enlaces a la versión de HTTP a la URL, el navegador, como se indica por HSTS, no emite una solicitud HTTP, pero internamente se redirige a la HTTPS recursos de forma segura. Esto es para evitar HTTPS rebaja de ataques tales como sslstrip.

    • He desactivado HSTS y las cabeceras originales se mostró de nuevo. Gracias!
  10. 2

    Este mensaje de precaución también se produce si la respuesta no es válida y por lo tanto cayó por el navegador.

    En mi caso la solicitud se ha enviado correctamente al servidor, el código del lado del servidor, a continuación, produjo un error y mi manejo personalizado de error devuelve el mensaje de error en el estado de HTTP campo de mensaje. Pero este error no fue recibida en el lado del cliente, debido a que los caracteres no válidos en el mensaje de error (que se describe aquí http://aspnetwebstack.codeplex.com/workitem/1386) que resultó en corruptos encabezados de respuesta.

  11. 2

    Me encontré con este problema con una llamada AJAX que nunca se completa. He seguido wvega del consejo y sugerencia acerca de la depuración con chrome://net-internals para finalmente determinar otro click controlador de eventos en la página, a la escucha en un nodo padre, que estaba causando el navegador para desplazarse a la misma URL (por lo que no era fácilmente perceptible).

    La solución fue añadir event.stopPropagation() en un click controlador en el formulario el botón enviar para mantener el clic de burbujeando el DOM y la cancelación de la petición AJAX en progreso (iniciada a través de un submit controlador en el form).

  12. 2

    He tenido esto muy recientemente (hoy en realidad), donde he tenido una llamada AJAX ir al servidor y Chrome incendios fuera de la «Precaución: Provisional encabezados se muestra.» En el lado del servidor scripting PHP, existen las consultas de MySQL que puede ser casi instantáneo o de tomar un par de segundos, dependiendo de la situación dada. Mi respuesta del servidor no envía de vuelta al navegador hasta que las consultas se han completado. He encontrado me sale este error sólo cuando el tiempo de consumo de consultas (hasta un par de segundos en total) están llevando a cabo y evitar la respuesta de ser enviado de vuelta.

    Mi situación implica que los muy raros posibilidad de tener que modificar una tabla mediante la adición/eliminación de cientos de columnas para el clima del modelo de salida…por lo tanto, la respuesta de retraso a partir de la iteración de un bucle de ALTERAR las consultas a la TABLA.

    • PHP Trabajadores, sería tal vez algo para usted
  13. 2

    Una razón común para que esto suceda es que si eres un seguimiento de un evento y no evitar la acción por defecto. Por ejemplo, si usted tiene un evento click, a continuación, usted querrá incluir:

    e.preventDefault();
    

    o

    return false;
    

    Si no, usted verá el número provisional de los encabezados de advertencia así como un «cancelado» en la pestaña de la Red de la consola web.

  14. 2

    En mi caso fue solo una falsa establecer ruta de acceso a un recurso (svg /img)

    • Sí – para mí, la falta de permisos cuando se utiliza un archivo de entrada de la solicitud.
  15. 2

    Este tema se me ocurrió cuando estaba enviando un inválido HTTP encabezado de Autorización. Se me olvidó base64 codificar.

    • En mi caso fue el encabezado de Autorización era demasiado largo
  16. 2

    Que podría debido a que ha enviado una petición Ajax, al mismo tiempo que saltar en su página a otra utilizando ubicación.href o algo por el estilo. Por lo que la solicitud anterior ha fallado.

  17. 1

    Me encontré con esto y se me pasó cuando me cambié de https a http. Los certificados SSL utilizamos en dev no son verificados por una 3 ª parte. Sólo son generados localmente dev certs.

    La misma llamadas funcionan muy bien en Chrome Canary y Firefox. Estos navegadores no parece ser tan estricta acerca de los certificados SSL como Chrome. Las llamadas de fallar en Chrome con la «PRECAUCIÓN: Provisional encabezados…» mensaje.

    Creo/espero que cuando hacemos uso de un legítimo SSL cert en el escenario y prod, no podemos ver este comportamiento en Chrome ya.

    • traté de curl, y recibir de los 60. a partir de esta respuesta averiguar que falta en la cadena de instalación de SSL. agregar la cadena y el problema ha desaparecido. gracias tio! por favor, use este para comprobar: curl -s-D – https://<yourcomain.com&gt;
  18. 1

    Me encontré con esta cuestión cuando he intentado cargar main.js para exigir js para el segundo tiempo después de que hice algunos cambios como resultado de error .
    Me acaba de convertirse en Desarrollador de Herramientas de Configuración de «Deshabilitar la Caché (Cuando DevTools es Abierto)» .
    y que hizo el encanto.

    • Solo tuve un problema similar, donde un video de html5 no se carga cuando el Chrome dev tools estaban abiertos como sigo ‘Deshabilitar la caché (mientras DevTools es abierto)» activado. Desactivación de la configuración de resolver el problema.
  19. 1

    Otro posible escenario que he visto – la misma solicitud se envía de nuevo justo después de pocos milisegundos (probablemente debido a un error en el lado del cliente).

    En el caso de que usted también verá que el estado de la primera solicitud es «cancelado» y que la latencia es sólo varios milisegundos.

  20. 1

    Esto fue sucediendo para mí, cuando yo tenía un enlace de descarga y después de hacer clic en él estaba tratando también de capturar el click con jquery y enviar una petición ajax. El problema fue porque cuando usted hace clic en el enlace de descarga, de salir de la página, aún no se ve así. Si no hay ninguna transferencia de archivo, verá la página solicitada.. Así que me puse un target=»_blank» para la prevención de este problema.

  21. 1

    Tengo este error al intentar imprimir una página en una ventana emergente. El cuadro de diálogo imprimir se muestran y se sigue esperando mi aceptación o cancelación de la impresión en la ventana emergente, mientras que en la página principal también estaba esperando en el fondo que muestra el mensaje de PRECAUCIÓN provisional encabezados se muestra cuando traté de hacer clic en otro enlace.

    En mi caso la solución fue eliminar el window.print (); secuencia de comandos que se ejecutan en el <body> de la ventana emergente para evitar el cuadro de diálogo imprimir.

  22. 1

    Vi esto ocurre cuando el número de conexiones a mi servidor superado Chrome max-connections-per-servidor límite de 6.

  23. 1

    Utilizar este código puño de su código:

    header('Cache-Control: no-cache, no-store, must-revalidate');
    header('Pragma: no-cache');
    header('Expires: 0');
    

    Esto funciona para mí.

  24. 0

    Acaba de tirar mis dos centavos. Estoy escribiendo una Aplicación Web utilizando CORS solicitudes y un completo servicio web RESTful. He encontrado chrome va a tirar este error cuando tengo un unhanded excepción o un Error PHP lanzado. Sólo en caso de que nadie se ejecuta en el problema. He encontrado que cuando esto sucede me puede el fuego de la Chrome App «Cartero – Resto de Cliente» y ejecutar el exacto la misma solicitud, pero en el Chrome App voy a conseguir realmente el Error PHP eso es de ser arrojados en lugar de esto que no de error descriptivo.

  25. 0

    Aquí hay otra solución.

    Si se produce este problema con $ajax() de la llamada, agregar http:// antes de su serverhost va a resolver su problema.

    var requestURL = "http://" + serverHost;
    $.ajax({
        dataType: "json",
        url: requestURL,
        data: data,
        success: success    
    });
    
  26. 0

    Si usted es el desarrollo de un Asp.Net aplicación Mvc y usted está tratando de devolver un JsonResult en el controlador, asegúrese de agregar JsonRequestBehavior.AllowGet a la Json método. Que fijo que es para mí.

    public JsonResult GetTaskSubCategories(int id)
    {
        var subcategs = FindSubCategories(id);
    
        return Json(subcategs, JsonRequestBehavior.AllowGet);  //<-- Notice it has two parameters
    }
    
  27. 0

    «Precaución: provisional encabezados se muestra» mensaje puede ser mostrada al sitio web alojado en HTTPS invoca una de las llamadas a WebApi alojado en HTTP. Usted puede comprobar todos si todos los Api son HTTPS. Navegador impide hacer una llamada a la inseguridad de los recursos. Usted puede ver un mensaje similar en el código cuando el uso de CAPTURA de la API de dominio con HTTP.

    De Contenido mixto: La página en los ‘https://website.com‘ se cargó a través de HTTPS, pero solicitó un inseguro de recursos ‘http://webapi.com‘. Esta petición ha sido bloqueada; el contenido debe ser servido a través de HTTPS.

  28. 0

    Tuve un problema similar con mi MEDIA de la aplicación. En mi caso, el problema estaba sucediendo en sólo una petición get. He probado con la eliminación de adblock, trató de limpieza de la memoria caché y probado con diferentes navegadores. Nada ayudó.

    finalmente, me he dado cuenta de que la api estaba tratando de devolver un enorme objeto JSON. Cuando he tratado de enviar un objeto pequeño, que estaba trabajando bien. Finalmente, he cambiado mi aplicación para devolver un buffer en lugar de un JSON.

    Deseo expressJS a tirar un error en este caso.

  29. 0

    Este problema también se producen durante el uso de algunos paquetes como webpack-hot-middleware y abrir varias páginas al mismo tiempo. webpack-hot-middleware creará una conexión para cada página para escuchar a los cambios de código, a continuación, actualizar la página. Cada navegador tiene una max-connections-per-server limitación que es de 6 para Chrome, así que si usted ya ha abierto más de 6 páginas en Chrome, la nueva solicitud se quedó allí hasta que cierre algunas páginas.

  30. 0

    En mi caso, la causa fue AdBlock extensión.

    La solicitud al servidor fue a través de y yo tengo la respuesta, pero yo no podía ver a la solicitud de cookies debido a «Provisional encabezados..» que se muestra en Dev tools. Después de desactivar el AdBlock para el sitio, la advertencia fue y herramientas dev comenzado a mostrar las cookies de nuevo.

    Para que el cambio surta efecto, también era necesario para cerrar el Dev tools y actualizar la página

  31. -1

    En mi caso, los parámetros del cuerpo estaba en el envío de la solicitud post, y la lógica que me han escrito, dependiendo de los parámetros del cuerpo estaban mal, así que la respuesta no ha podido ser enviado. por lo que estaba recibiendo este error.

     example: post request body (a: alsldfjfj) which I was sending
    

    pero yo había escrito el código para validación «b» en lugar de «a»

Dejar respuesta

Please enter your comment!
Please enter your name here