У меня есть приложение Angular 5, которое я хочу запустить локально, прежде чем пытаться развернуть его в Интернете.
у меня есть contact
Компонент для получения электронной почты от пользователей через контактную форму. В папке компонентов у меня есть скрипт PHP sendmail.php
это называется, когда я нажимаю на кнопку формы.
Вот глобальная структура:
MyProjectName
----- src
----- ----- app
----- ----- ----- contact
----- ----- ----- ----- contact.component.html
----- ----- ----- ----- contact.component.scss
----- ----- ----- ----- contact.component.spec.ts
----- ----- ----- ----- contact.component.ts
----- ----- ----- ----- sendmail.php
в contact.component.html
Я вызываю функцию sendEmail()
по клику:
contact.html
<button type="submit" (click)="sendEmail()">Send</button>
Вот функция в contact.component.ts
файл
export class ContactComponent implements OnInit {
constructor(private sendMailService:SendMailService) { }
sendEmail():void {
this.sendMailService.performGetEx().subscribe();
}
И сервис send-mail.service.ts
которые вызывают скрипт php. Эта услуга находится на том же уровне, что и contact
папка и похоже, что ошибка на пути происходит здесь
import { Injectable } from '@angular/core';
import {HttpClient, HttpHeaders} from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable()
export class SendMailService {
constructor(private http:HttpClient) { }
performGetEx():Observable<any> {
return this.http.get<any>('./contact/sendmail.php');
}
Каждый раз, когда я нажимаю на кнопку формы, появляется ошибка:
ПОЛУЧИТЬ HTTP: // локальный: 4200 / контакт / sendmail.php 404 (Не найдено) zone.js: 2935
ОШИБКА HttpErrorResponse {заголовки: HttpHeaders, статус: 404, statusText: «Не
Найдено «, url:»HTTP: // локальный: 4200 / контакт / sendmail.php«Хорошо, ложь, …}
Это действительно ошибка пути? сервер Angular Cli может получить скрипт php?
ОБНОВИТЬ :
Я развернул свой Angular-проект с Wamp Server (кстати, весь мой стиль — это нокаут, я не знаю, нормально ли это?), И я не мог вызывать свой скрипт по щелчку, пока не добавил action
недвижимость в моей форме:
contact.component.html
<form action= "sendmail.php" method="post">
...
</form>
Я сделал то же самое без Wamp, и у меня та же проблема.
Задача ещё не решена.
Других решений пока нет …