Получение запроса по всему домену и порту Angular2 на PHP

Пройдя этот быстрый пример запроса GET из Angular2 в файл PHP я продолжаю получать –

Ошибка 304

Я тестирую разницу между использованием node и php для задней части app angular2 . У меня есть простой GET который пытается получить небольшой объем данных из файла php .

Запрос, кажется, идет хорошо, но файл не предоставляется в приложение.

304 NOT MODIFIED Получен условный запрос GET или HEAD и вызвал бы ответ 200 OK, если бы не тот факт, что условие было оценено как false.

Другими словами,

нет необходимости передавать серверу представление целевого ресурса, поскольку запрос указывает, что клиент, который сделал запрос условным, уже имеет действительное представление; поэтому сервер перенаправляет клиент, чтобы использовать это сохраненное представление, как если бы оно было полезной нагрузкой ответа 200 OK.

CORS

У меня есть CORS разрешенный внутри express app.js файла express app.js

У меня есть CORS в PHP файле.

Как я могу решить эту проблему? Мне хотелось бы, по крайней мере, ng2 данные со стороны ng2 .

Примеры кода

PHP // Запуск на порт Apache 80 @ api.example.com

 <?php header("Access-Control-Allow-Origin: *"); $data = array( array('id' => '1','first_name' => 'Cynthia'), array('id' => '2','first_name' => 'Keith'), array('id' => '3','first_name' => 'Robert'), array('id' => '4','first_name' => 'Theresa'), array('id' => '5','first_name' => 'Margaret') ); echo json_encode($data); ?> 

Angular2 // Работа на Express Server @ localhost: 4200

 import {Http, Response} from '@angular/http'; import {Injectable, Component } from '@angular/core'; @Component({ selector: 'my-app', template: `<ul> <li *ngFor="let person of data"> {{person.id}} - {{person.first_name}} </li> </ul>` }) export class AppComponent { private data; constructor(private http:Http){ } ngOnInit(){ this.getData(); } getData(){ this.http.get('api.example.com/index.php') .subscribe(res => this.data = res.json()); } } 

Я попытался изменить функцию getData() которая не сработала. Совсем недавно это,

  getData(){ let url = 'api.example.com/index.php'; let headers = new Headers({ 'Content-Type': 'application/json' }); let options = new RequestOptions({ headers: headers }); this.http.get(url, options) .subscribe(res => { this.data = res.json(); console.log(this.data); }); } 

У меня была аналогичная проблема, но я смог ее исправить, установив следующие заголовки в сценарии api;

 if (isset($_SERVER['HTTP_ORIGIN'])) { header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}"); header('Access-Control-Allow-Credentials: true'); header('Access-Control-Max-Age: 86400'); // cache for 1 day} 

// Поскольку заголовки Access-Control принимаются во время запросов OPTIONS

 if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'])) header("Access-Control-Allow-Methods: GET, POST, OPTIONS"); if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'])) header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}"); exit(0); } 

Надеюсь, поможет