Извиках API на трета страна, като използвах Jquery AJAX. Получавам следната грешка в конзолата:
Cross-Origin Read Blocking (CORB) блокира крос-оригиналния отговор МОЯТ URL с MIME тип application/json. Вижте https://www.chromestatus.com/feature/5629709824032768 за повече подробности.
Използвах следния код за 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....=================");
}
});
Когато проверих във Fiddler, получих данните в отговора, но не и в метода за успех на Ajax.
Моля, помогнете ми.
В повечето случаи блокираният отговор не би трябвало да повлияе на поведението на уебстраницата и съобщението за грешка CORB може спокойно да се игнорира. Например предупреждението може да се появи в случаи, когато тялото на блокирания отговор вече е било празно или когато отговорът е щял да бъде доставен на контекст, който не може да го обработи (например HTML документ, като страница за грешка 404, която се доставя на таг).
https://www.chromium.org/Home/chromium-security/corb-for-developers
Трябваше да изчистя кеша на браузъра'си, четох в тази връзка, че ако заявката получи празен отговор, получаваме тази предупредителна грешка. Получавах някакъв CORS на моята заявка и затова отговорът на тази заявка беше празен, Всичко, което трябваше да направя, беше да изчистя кеша на браузъра'и CORS изчезна. Получавах CORS, защото Chrome беше запазил номера на PORT в кеша, Сървърът просто приемаше localhost:3010
, а аз правех localhost:3002
, заради кеша.
Трябва да добавите CORS от страна на сървъра:
Ако използвате nodeJS, тогава:
Първо трябва да инсталирате** cors
, като използвате следната команда :
npm install cors --save
Сега добавете следния код към началния файл на вашето приложение, например ( app.js или 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);
Заглавията на отговора обикновено се задават от сървъра. Задайте 'Access-Control-Allow-Headers'
на 'Content-Type'
от страна на сървъра