Ошибка 400 при использовании почтового запроса в Angular 4

1

Я написал код, чтобы отправить запрос на конечную точку в Angular 4. Вот мой код...

import { Component, OnInit } from "@angular/core";
import { HttpClient, HttpClientModule } from "@angular/common/http";
import { HttpHeaders } from "@angular/common/http";

import "rxjs/add/operator/map";

@Component({
templateUrl: "./name.component.html",
styleUrls: ["./name.component.css"]
})

export class nameComponent implements OnInit {
constructor(private http: HttpClient) {}

ngOnInit() {
  console.log("init");
}

saveForm() {
  let names = [
    {
      name: "Bob"
    }
  ];

JSON.stringify(names);

let headers = new HttpHeaders();
headers.append("Accept", "application/json");
headers.append("Content-Type", "application/json");
headers.append("Authorization", 'my_token');

this.http
  .post("endpoint", names, {
    headers: headers
  })
  .subscribe(err => console.log(err));
}
}

Это код, который у меня есть на странице html, которая вызывает вызов POST

<button
 type="button"
 (click)="saveForm()"
>
Save
</button>

Когда я перехожу на страницу и нажимаю кнопку, я получаю ошибку 400 (неудачный запрос).

message: "Http failure response for endpoint: 400 Bad Request"
name: "HttpErrorResponse"
ok: false
status: 400
statusText: "Bad Request"
url: "endpoint"

Я заменил слово "конечная точка" на настоящий URL.

У меня нет синтаксических ошибок, но что может вызвать 400? Я попытался попасть в конечную точку через LoopBack API Explorer, и это сработало.

Я ценю любую помощь, которую кто-то может мне дать!

  • 0
    400 - Bad Request . Что бы ни ожидала конечная точка, она этого не получает.
  • 0
    Конечная точка ожидает массив объектов. Это то, что я передаю в вызов this.http.post.
Показать ещё 3 комментария
Теги:
angular
http
angular4-forms

1 ответ

0

Вы не сохраняете вывод JSON.stringify(), так что вы используете объект, а не строку при создании POST:

names = JSON.stringify(names);
  • 0
    Теперь я получаю сообщение об ошибке «Имена являются обязательным аргументом». Это почти как когда я нажимаю на URL, он не видит, что я передаю имена объектов в качестве параметра. Это выглядит так, как будто я отправил нулевой объект как часть запроса POST. есть идеи?
  • 0
    Если вы проверяете запрос с помощью инструментов разработчика браузера, видите ли вы отправленные имена? Совпадают ли данные с тем, что вы отправили, когда использовали обозреватель LoopBack API и добились успеха?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню