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.
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);
Os cabeçalhos de resposta são geralmente definidos no servidor. Set 'Access-Control-Allow-Headers'
to 'Content-Type'
on server side