Heim  >  Artikel  >  Web-Frontend  >  Implementierungsmethode der domänenübergreifenden Cors-Anfrage beim Abrufen in React

Implementierungsmethode der domänenübergreifenden Cors-Anfrage beim Abrufen in React

亚连
亚连Original
2018-05-30 14:01:495156Durchsuche

In diesem Artikel wird hauptsächlich die Implementierungsmethode für domänenübergreifende Cors-Anfragen in Fetch in React vorgestellt. Jetzt teile ich sie mit Ihnen und gebe sie als Referenz.

React wird im Projekt verwendet und Fetch muss anstelle von Ajax verwendet werden.

Da das create_react_app-Tool von React sehr praktisch ist, kann es grundsätzlich sofort verwendet werden. Nach dem Erstellen des Projekts und der Eingabe des npm-Startbefehls überwacht es automatisch einen Port 3000 und den Front-End-Teil ist fertig.

Spezifische Referenz: https://github.com/facebookincubator/create-react-app

Ich habe Phalcon für den Backend-Teil verwendet.

Aufgrund der Trennung von Front-End und Back-End habe ich der Einfachheit halber versucht, sie in Nginx zur gleichen Domäne zu machen (die Top-Level-Domänennamen von Front-End und Back-End). Die End-API ist dieselbe), aber das Phalcon-Framework ist ein einzelner Eintrag, React Monitoring 3000, über den Nginx-Reverse-Proxy gab es ein Problem, dass js nicht gefunden werden konnte, also habe ich den Plan derselben Domäne aufgegeben.

Also habe ich zwei Domänennamen konfiguriert:

1, www.xxx.com
2, data.xxx.com

Der erste verwendete Domänenname Für den Reaktionsteil ist die Portnummer 3000 (zum Debuggen ist sie offiziell gestartet 80)
Der zweite Domänenname wird für die API verwendet, die Portnummer ist 80

Es liegt also eine domänenübergreifende Verbindung vor Problem.

Eine ausführliche Einführung in cors finden Sie unter: http://www.jb51.net/article/102694.htm

Im Folgenden sind die Einstellungen im PHP-Teil aufgeführt, die eine Cross- Domänenzugriff auf Domänennamen

  $origin    = isset($_SERVER['HTTP_ORIGIN'])?$_SERVER['HTTP_ORIGIN']:'';
  $allowOrigin = [
            'http://www.xxx.com',
            'http://xxx.com'
          ];
  if (in_array($origin, $allowOrigin)) {
    header('Access-Control-Allow-Origin: ' . $origin);
  }

  header('Access-Control-Allow-Methods: PUT,POST,GET,DELETE,OPTIONS');
  header('Access-Control-Allow-Credentials: true');
  header('Access-Control-Allow-Headers: Content-Type, Accept');

Das Folgende ist die Ajax-Anfrage für den Abrufteil

let postData = {a:'b'};
fetch('http://data.xxx.com/Admin/Login/login', {
  method: 'POST',
  mode: 'cors',
  credentials: 'include',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  body: JSON.stringify(postData)
}).then(function(response) {
  console.log(response);
});

Das Obige habe ich für alle zusammengestellt und hoffe, dass es in Zukunft für alle hilfreich sein wird.

Verwandte Artikel:

iview-Datumskontrolle, bidirektionale verbindliche Datumsformatmethode

Lösen der Zeitkontrollauswahl in iView Das Problem, immer einen Tag zu verpassen

Detaillierte Erklärung basierend auf der Verwendung des On-Change-Attributs in IView

Das obige ist der detaillierte Inhalt vonImplementierungsmethode der domänenübergreifenden Cors-Anfrage beim Abrufen in React. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn