http.GET работает, но http.post & http.put не - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь написать приложение Angular 4, которое взаимодействует с бэкэндом ASP.net. Запросы «GET» работают нормально, но я не могу получить запросы «POST», «PUT» или «DELETE». Вот пример кода:

//asp.net server code:
    [OperationContract]
    [WebInvoke(Method = "POST")]
    public string Post2U([FromUri]string name) { return "name: " + name; }

    [OperationContract]
    [WebInvoke(Method = "POST")]
    public string Post2B([FromBody]string name) { return "name: " + name; }


//Angular code
Post2B(){
  return this.http.post(this.url + "Post2B", {name: 'pops'});
  }

Post2U(){
  return this.http.post(this.url + "Post2U?name=jack");
  }

Post2U () не выдает ошибку, но возвращаемая строка просто: "name:" Входной параметр не распознается.

Post2B () возвращает ошибку «Метод 405 не разрешен»

Есть идеи? Спасибо.

1 Ответ

0 голосов
/ 06 мая 2018

Попробуйте использовать JSON.stringify(your_object) для строкового преобразования тела и передать его как {body: body_object} в качестве второго параметра hhtp.post.

this.http.post(this.url + "Post2B", {body:JSON.stringify({name: 'pops'})})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...