Obtener datos remotos con JSONP, CORB error de Chrome

CORB

Tenía que consultar un archivo JSON de un servidor diferente a donde tengo la aplicación, el problema es que aunque mandaba la petición adecuada (JSONP) desde jQuery, Google Chrome insistía en mostrarme el mensaje: Cross-Origin Read Blocking (CORB) blocked corss-origin response ... bla bla bla.

Lo primero es que la única diferencia de hacer una solicitud JSON de JSONP, es indicarle el callback del lado del cliente, esto se logra enviando el parámetro callback=? , así le enviaremos la petición al servidor y nos regresará el formato adecuado. Esto claro si el servidor lo permite, si es una aplicación tuya lo que tienes que hacer en lugar de regresar el json normal, es regresarlo con el callback indicado, ejemplo:

<?php
   $msg = new stdclass;
   $msg->ok = 1;
   //respuesta clásica JSON
   echo json_encode($array);
   //respuesta JSONP
   echo strip_tags($_GET['callback'])."(".json_encode($msg).")";

Así, le indicamos al servidor que regrese encapsulado el JSON con el callback indicado por el cliente. Hasta ahí todo bien, sin embargo, me seguía mostrando el error de CORB. Resulta que el problema es que no estaba enviando la cabecera adecuada de contenido, normalmente envio application/json y ahí es donde tenía el error: debe enviarse application/javascript. En realidad eso fue todo, después de ello ya me mostró la información que requería. La cabecera se puede enviar algo como esto, al inicio del script.

<?php
   // enviamos el tipo de contenido de nuestro JSON (jsonp)
   header('Content-Type: application/javascript');
   echo strip_tags($_GET['callback'])."(".json_encode($msg).")";

Eso debería bastar para consumir correctamente el contenido.

+ fotos

Obtener datos remotos con JSONP, CORB error de Chrome
Obtener datos remotos con JSONP, CORB error de Chrome

Almacenado en javascript, PHP, Desarrollo Web

por Jorge Martínez Mauricio :)

Reacciones

síguenos en instagram / twitter

Relacionadas

    Suscríbete por correo electrónico, recibirás los nuevos escritos antes que nadie y es gratis 😊

    Populares estos días

      blog / fotos / archivo

      Obtener datos remotos con JSONP, CORB error de Chrome

      tar.mx es un blog sobre fotografía, tecnología y otras chunches

      tar.mx logo

      última mod vie 8 de mayo de 2020, 13:34