Я использую docker-compose для докеризации моего проекта, и у меня есть Php, mysql, nodej.js… Ниже вы можете увидеть весь мой исходный код, который мог понять мои проблемы.
Код docker-compose:
version: '2'
services:
db:
build: ./mysql
volumes:
- db_data:/var/lib/mysql
ports:
- '3306:3306'
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=testDB
- MYSQL_USER=pass
- MYSQL_PASSWORD=devel
- MYSQL_ROOT_HOST=%
phpmyadmin:
build: ./phpmyadmin
links:
- db:db
ports:
- '8001:80'
php:
build: ./php
ports:
- '80:80'
restart: always
volumes:
- /home/samir2/www:/var/www/html
depends_on:
- db
node.js:
build: ./node.js
ports:
- '3000:3030'
volumes:
- /home/samir2/www:/var/www/html
volumes:
db_data:
Мой веб-сервис отлично работал с почтальоном, когда я пытался Добавление некоторых данных в веб-службу, она успешно вставлена в базы данных.
Но когда я пытаюсь использовать запрос от angular 6
У меня нет доступа к моему серверу с помощью «405 (метод запрещен)»
Код для моего пользователя службы
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import {User} from "../model/user.model";
@Injectable()
export class UserService {
constructor(private http: HttpClient) { }
baseUrl: string = 'http://server/blog/public/api/register';
createUser(user: User) {
return this.http.post(this.baseUrl, user);
}
}
сообщение об ошибке спереди angular.js
мой код add-user.component.html
<div class = "col-md-6">
<h2 class = "text-center">Add User</h2>
<form [formGroup] = "addForm" (ngSubmit) = "onSubmit()">
<div class = "form-group">
<label for = "email">Email address:</label>
<input type = "email" formControlName = "email" placeholder = "Email" name = "email" class = "form-control" id = "email">
</div>
<div class = "form-group">
<label for = "firstName">First Name:</label>
<input formControlName = "firstName" placeholder = "First Name" name = "firstName" class = "form-control" id = "firstName">
</div>
<div class = "form-group">
<label for = "lastName">Last Name:</label>
<input formControlName = "lastName" placeholder = "Last name" name = "lastName" class = "form-control" id = "lastName">
</div>
<button class = "btn btn-success">Update</button>
</form>
</div>
и add-user.component.ts
import { Component, OnInit } from '@angular/core';
import {FormBuilder, FormGroup, Validators} from "@angular/forms";
import {UserService} from "../service/user.service";
import {first} from "rxjs/operators";
import {Router} from "@angular/router";
@Component({
selector: 'app-add-user',
templateUrl: './add-user.component.html',
styleUrls: ['./add-user.component.css']
})
export class AddUserComponent implements OnInit {
constructor(private formBuilder: FormBuilder,private router: Router, private userService: UserService) { }
addForm: FormGroup;
ngOnInit() {
this.addForm = this.formBuilder.group({
id: [],
email: ['', Validators.required],
firstName: ['', Validators.required],
lastName: ['', Validators.required]
});
}
onSubmit() {
this.userService.createUser(this.addForm.value)
.subscribe( data => {
this.router.navigate(['list-user']);
});
}
}
Любая идея ?
как получилось, что это метод GET, а в моем сервисе пользователь post (return this.http.post (this.baseUrl, user);)?
Можете ли вы опубликовать свой component.ts и html, где вы использовали службу
да, все готово, вы можете проверить
и когда я попытался изменить метод моего веб-сервиса на GET в сообщении give zone.js: 2969 POST blog / public / api / register 405 (Method Not Allowed), это противоположное, я действительно не понимаю ?!
console.info (data) в вашем методе onSubmit ()
Спасибо :) Теперь он работает, у меня возникла проблема с полями формы {user created: true} user





На изображении с ошибкой отображается запрос GET, а в почтальоне - POST. Можете ли вы опубликовать более связанный код.