Угловой HTTP-клиент после звонка дает ошибку 404 - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть локальный веб-интерфейс asp.net, работающий на моем локальном компьютере, и я могу сделать запрос с помощью метода post через Postman. Но когда я делаю это, используя httpclient в angular следующим образом, он возвращает 404.

import { HttpClientModule,HttpClient,HttpHeaders,HttpParams } from "@angular/common/http";

var headers = new HttpHeaders().set("Content-Type", "application/json");  
var content = { "testParam":"testvalue" };

    this.httpClient.post("http://localhost:50979/api/test",JSON.stringify(content),{ headers: headers }).subscribe(
      data => {
          console.log("POST Request is successful ", data);
      },
      error => {
          console.log("Error", error);
      }
    );   

Так что не так с этим кодом? Мой API работает нормально, и я могу получить данные правильно с помощью почтальона. Получить запрос работает нормально, используя httpclient. Заранее спасибо!

enter image description here

enter image description here

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Наверное, но ..

1) убедитесь, что тело вашего запроса правильное

// correct request body
{ "testParam": "foo" }

// WRONG, we don't want a string!!!
"{ testParam... }"

https://datawookie.netlify.com/blog/2016/09/view-post-data-using-chrome-developer-tools/

2) Убедитесь, что у вас нет проблем с CORS, вы увидите ошибки, сообщающие вам что-то о запросах «OPTIONS». Вы можете проверить это в dev tools> network тоже.

3) Прочитать тело сообщения в ядре asp, это должно выглядеть следующим образом

 public Task MyAction([FromBody] MyRequest myModel) { … }

 // where… 
 public class MyRequest {
   public string TestParam {get; set;}
 }
0 голосов
/ 11 сентября 2018

Возможно, вы столкнулись с проблемой CORS, пожалуйста, проверьте консоль или ошибки, чтобы увидеть, есть ли какие-либо проблемы, связанные с CORS.

https://angular.io/guide/http#security-xsrf-protection

...