Bloqueio de Leitura Cruzada (CORB)

Eu chamei API de terceiros usando Jquery AJAX. Estou a receber erros de seguimento na consola:

Cross-Origin Read Blocking (CORB) bloqueado resposta de origem cruzada MY URL com aplicação do tipo MIME/json. Veja https://www.chromestatus.com/feature/5629709824032768 para mais detalhes.

Eu usei o seguinte código para a chamada Ajax :

$.ajax({
  type: 'GET',
  url: My Url,
  contentType: 'application/json',
  dataType:'jsonp',
  responseType:'application/json',
  xhrFields: {
    withCredentials: false
  },
  headers: {
    'Access-Control-Allow-Credentials' : true,
    'Access-Control-Allow-Origin':'*',
    'Access-Control-Allow-Methods':'GET',
    'Access-Control-Allow-Headers':'application/json',
  },
  success: function(data) {
    console.log(data);
  },
  error: function(error) {
    console.log("FAIL....=================");
  }
});

Quando entrei no Fiddler, recebi os dados em resposta, mas não no método de sucesso Ajax.

Por favor, ajude-me.

Na maioria dos casos, a resposta bloqueada não deve afetar o comportamento da página web's e a mensagem de erro CORB pode ser ignorada com segurança. Por exemplo, o aviso pode ocorrer em casos em que o corpo da resposta bloqueada já estava vazio, ou quando a resposta ia ser entregue a um contexto que pode't lidar com ele (por exemplo, um documento HTML como uma página de erro 404 sendo entregue a um tag).

https://www.chromium.org/Home/chromium-security/corb-for-developers

Eu tive que limpar o cache do meu navegador's, eu estava lendo neste link, que, se o pedido receber uma resposta vazia, nós recebemos este erro de aviso. Eu estava recebendo algum CORS no meu pedido, e então a resposta deste pedido ficou vazia, tudo que eu tinha que fazer era limpar o cache do navegador's, e o CORS escapou. Eu estava recebendo CORS porque o cromo tinha salvo o número PORT no cache, O servidor só aceitava localhost:3010 e eu estava fazendo localhost:3002, por causa do cache.

Comentários (0)

Você tem que adicionar CORS no lado do servidor:

Se você estiver usando **nodeJS*** então:

Primeiro você necessita instalar cors utilizando o comando abaixo :

npm install cors --save

Agora add o seguinte código ao seu arquivo inicial de aplicação como ( app.js ou server.js)

var express = require('express');
var app = express();

var cors = require('cors');
var bodyParser = require('body-parser');

//enables cors
app.use(cors({
  'allowedHeaders': ['sessionId', 'Content-Type'],
  'exposedHeaders': ['sessionId'],
  'origin': '*',
  'methods': 'GET,HEAD,PUT,PATCH,POST,DELETE',
  'preflightContinue': false
}));

require('./router/index')(app);
Comentários (7)

Os cabeçalhos de resposta são geralmente definidos no servidor. Set 'Access-Control-Allow-Headers' to 'Content-Type' on server side

Comentários (3)