AngularJS - отправка данных в API не работает

0

Я пытаюсь отправить данные, которые пользователь помещает в текстовое поле и текстовый ввод, и API, который сохранит данные.

Вот функция:

$scope.forward = function() {

  $http({
    url: 'http://appsdev.pccportal.com:8080/ecar/api/reject/' + carID,
    method: "POST",
    data: "comments=" + this.comments,
    data: "recipient=" + this.recipient,
    headers: {'Content-Type': 'application/x-www-form-urlencoded'}
  }).
  then(function(response) {
    $scope.output = response.data;
  })

}

Что он делает, когда он запущен, он регистрирует только получателя, а не комментарии. Я предполагаю, потому что я дважды использую "данные", и он распознает только последний (в данном случае "получатель"). Как я могу передать 2 значения через это API.

благодаря

  • 0
    объединить данные в одну строку, разделенную символом & . не забудьте encodeURIComponent ...

3 ответа

0
Лучший ответ

Это заставило его работать нормально:

data: 'recipient='+encodeURIComponent(this.recipient)+'&comments='+encodeURIComponent(this.comments),
2

Как вы сказали, вы переписываете ключ data из простого объекта, который вы переходите на $http, отправляете все вместе:

data: { recipient: this.recipient, comments: this.comments }
  • 0
    Это не отправляет данные на сервер через API, единственное, что работает, это "data:" comments = "+ this.comments", а не "comments: this.comments"
  • 0
    @ agon024 почему ты так говоришь? Кстати, success не рекомендуется, используйте then insted. Смотрите: docs.angularjs.org/api/ng/service/$http
Показать ещё 5 комментариев
0

передать его как объект:

data : {comments: this.comments, recipient: this recipient}
  • 0
    Как я писал ниже, это не отправляет данные на сервер через API, единственное, что работает, это «data:» comments = «+ this.comments», а не «comments: this.comments»

Ещё вопросы

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