Estoy tratando de recuperar respuestas JSON de una API. Sigo recibiendo "Bloqueo de lectura de origen cruzado (CORB) bloqueado respuesta de origen cruzado", lo que provoca un error. He buscado en la web tratando de encontrar cuál podría ser el problema, pero estoy fallando.
La API tiene que devolver una sesión generada.
Cuando inspecciono el encabezado, veo que hay varios encabezados adjuntos a la solicitud.
Lo gracioso es que cuando copio la URL directamente en mi navegador web, obtengo la respuesta json con los valores, pero una vez que uso la url en una función ajax, se me niega.
jQuery.ajax({ type: 'GET', crossOrigin: true, url: "https://apitest.mobzgo.co.za/getSession?username=********&passingword=*****", dataType: "jsonp", contentType: "jsonp;", success: function (response) { alert(JSON.stringify(response)); }, error: function (jqXHR, exception, errorThrown) { var msg = ''; if (jqXHR.status === 0) { msg = 'Not connect.\n Verify Network.'; } else if (jqXHR.status === 404) { msg = 'Requested page not found. [404]'; } else if (jqXHR.status === 500) { msg = 'Internal Server Error [500].'; } else if (exception === 'parsererror') { msg = errorThrown; } else if (exception === 'timeout') { msg = 'Time out error.'; } else if (exception === 'abort') { msg = 'Ajax request aborted.'; } else { msg = 'Uncaught Error.\n' + jqXHR.responseText; } alert(msg); } });Los errores de CORB ocurren cuando intenta tratar algunos datos de un origen diferente como si fueran un tipo de datos diferente.
por ejemplo, <img src="http://example.com/foo.html"> - un documento HTML no es una imagen.
En este caso, dijo dataType: "jsonp", por lo que está tratando de tratar la URL como JavaScript (ya que JSONP tiene un formato especial de JavaScript). No es JavaScript, entonces, en lugar de intentar ejecutarlo y lanzar una excepción, solo lanza una excepción cuando detecta que no es JS.
Aparte: contentType: "jsonp;", — JSONP no es un tipo de contenido y está realizando una solicitud GET, por lo que no hay un cuerpo de solicitud para describir el tipo de todos modos. Además, las solicitudes JSONP no pueden establecer el tipo de contenido. Esto es incorrecto y sin sentido de múltiples maneras.
Tenga en cuenta también que JSONP es desagradable . Es limitado y tiene preocupaciones de seguridad. Al crear una API hoy en día, no hay una buena razón para admitir solicitudes de origen cruzado utilizando JSONP. Tenemos CORS ahora. CORS es mucho más seguro y potente.