То, что я пытаюсь сделать, это то, что у меня есть база данных MySQL на моем сервере Wamp, я смог подключиться к базе данных с помощью сценариев PHP, и она работает нормально. Я пытаюсь подключиться к нему через Angular и сталкиваюсь с ошибкой CORS. Я думаю, что причина ошибки в том, что я использую сервер Wamp?
<?php
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASS','');
define('DB_NAME','test');
function connect(){
$connect = mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);
if(mysqli_connect_errno($connect)){
die("Failed to connect");
}
mysqli_set_charset($connect,'utf8');
return $connect;
}
$con = connect();
Вот файл PHP, используемый для получения из базы данных:
<?php
require 'index.php';
$students = [];
$sql = "SELECT category_id FROM category";
if($result = mysqli_query($con,$sql)){
$cr = 0;
while($row = mysqli_fetch_assoc($result)){
$students[$cr]['category_id']=$row['category_id'];
$cr++;
}
// print_r($students);
echo json_encode($students);
}
?>
А вот мойслужба в Angular, которая использует httpClientModule:
import {HttpClient} from '@angular/common/http';
...
constructor(private http:HttpClient) { }
getStudents(){
return this.http.get<Students[]>('http://localhost/angularPHP/list.php');
}
Я также импортировал HTTP-модуль КЛИЕНТА в app.module.ts
Ошибка кода, отображаемая в Angular:
Запрос перекрестного источника заблокирован: та же политика происхождения запрещает чтение удаленного ресурса в http://localhost/angularPHP/list.php. (причина: отсутствует заголовок CORS 'Access-Control-Allow-Origin').
# Remove the php extension from the filename
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
header('Access-Control-Allow-Origin: ' . ['http://localhost:4200']);
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header('Access-Control-Max-Age: 1000');
header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
Мой файл .htaccess был написан из-за онлайнового учебника, из-за которого ошибка не исчезла