PHP скрипт не найден: GET Http://localhost4200/contact/sendmail.php 404 (не найден) - PullRequest
0 голосов
/ 09 мая 2018

У меня есть приложение 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 Iвызовите функцию 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');
}

Каждый раз, когда я нажимаюна моей кнопке формы вот ошибка:

GET http://localhost:4200/contact/sendmail.php 404 (не найдено) zone.js: 2935

ОШИБКА HttpErrorResponse {заголовки: HttpHeaders, статус:404, statusText: «Not Found», url: «http://localhost:4200/contact/sendmail.php", ok: false,…}

Это действительно ошибка пути? Может ли сервер Angular Cli получить php-скрипт?

ОБНОВЛЕНИЕ:

Я развернул свой Angular-проект с Wamp Server (кстати, весь мой стиль - нокаут, я не знаю, нормально ли это?), И я не былне могу вызывать сценарий по щелчку, пока я не добавлю в форму action свойство:

contact.component.html

<form action= "sendmail.php" method="post">
...
</form>

Я сделал то же самое без Wamp и у меня возникла та же проблема.

...