Herkunftsübergreifende Leseblockierung (CORB)

Ich habe Drittanbieter-API mit Jquery AJAX aufgerufen. Ich erhalte folgenden Fehler in der Konsole:

Cross-Origin Read Blocking (CORB) blockierte die herkunftsübergreifende Antwort Meine URL mit MIME-Typ application/json. Siehe https://www.chromestatus.com/feature/5629709824032768 für weitere Details.

Ich habe folgenden Code für den Ajax-Aufruf verwendet:

$.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....=================");
  }
});

Wenn ich in Fiddler geprüft habe, habe ich die Daten in der Antwort erhalten, aber nicht in der Ajax-Erfolgsmethode.

Bitte helfen Sie mir weiter.

In den meisten Fällen sollte die blockierte Antwort keine Auswirkungen auf das Verhalten der Webseite haben und die CORB-Fehlermeldung kann getrost ignoriert werden. Die Warnung kann zum Beispiel auftreten, wenn der Körper der blockierten Antwort bereits leer war oder wenn die Antwort an einen Kontext geliefert werden sollte, der sie nicht verarbeiten kann (z. B. ein HTML-Dokument wie eine 404-Fehlerseite, die an ein -Tag geliefert wird).

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

Ich musste den Cache meines Browsers leeren, da ich in diesem Link gelesen habe, dass, wenn die Anfrage eine leere Antwort erhält, wir diesen Warnfehler bekommen. Ich war einige CORS auf meine Anfrage zu bekommen, und so die Antwort dieser Anfrage bekam leer, Alles, was ich tun musste, war der Browser-Cache zu löschen, und die CORS bekam weg. Ich erhielt CORS, weil Chrome die PORT-Nummer im Cache gespeichert hatte. Der Server akzeptierte nur localhost:3010 und ich tat localhost:3002, wegen des Caches.

Kommentare (0)

Sie müssen CORS auf der Serverseite hinzufügen:

Wenn Sie nodeJS verwenden, dann:

Zuerst müssen Sie "CORS" mit dem folgenden Befehl installieren:

npm install cors --save

Fügen Sie nun den folgenden Code in die Startdatei Ihrer Anwendung ein (z.B. app.js oder 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);
Kommentare (7)

Antwort-Header werden im Allgemeinen auf dem Server gesetzt. Setzen Sie 'Access-Control-Allow-Headers' auf 'Content-Type' auf der Serverseite

Kommentare (3)