`$http:badreq Bad Request Configuration` - из метода angular post, что здесь не так?

Я разрабатываю пример приложения для изучения angularjs с помощью node.js. когда я отправляю данные в бэкэнд для создания нового family, я получаю сообщение об ошибке:

Error: $http:badreq
Bad Request Configuration
Http request configuration url must be a string.  Received: 
{
    "method":"POST",
    "url":"api/family",
    "data":  {
                "username":"fagruddin",
                "password":"valaanur",
                "familyLeader":"fagruddin",
                "husband":"fagruddin",
                "wife":"rejiya",
                "child":2
     },
     "headers":{
         "Content-Type":"application/x-www-form-urlencoded"
     }
}

что здесь не так? кто-нибудь поможет мне решить это?

Текущая демонстрация для ознакомления


person user2024080    schedule 11.09.2016    source источник


Ответы (1)


Если вы используете метод быстрой публикации, вы опускаете параметр конфигурации, делая первый параметр URL-адресом.

Поскольку вы передали объект конфигурации вместо URL-адреса в качестве первого параметра, вы получаете сообщение об ошибке.

$http.post(
  '/api/family', 
  vm.form, 
  {headers: {'Content-Type': 'application/x-www-formurlencoded'}}
).success(function(data) {
    console.log( 'data', data );
})

если вы используете прямой http, вы можете передать объект конфигурации:

$http({
    method: 'POST',
    url: 'api/family',
    data : vm.form,
    headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function(data) {
    console.log( 'data', data );
})
person swestner    schedule 11.09.2016
comment
Я использую второй подход, верно? тогда почему я получаю ошибку? - person user2024080; 11.09.2016
comment
нет, вы используете ярлык поста. Ваш вызов выглядит как $http.post - person swestner; 11.09.2016
comment
обновлено, но получаю эту ошибку: angular.js:12011 POST https://myfamily-a3gwebtrain.c9users.io/api/family 500 (Internal Server Error) - но когда я использую postman, это работает - person user2024080; 11.09.2016
comment
Похоже, проблема с конечной точкой вашего узла. Вы должны опубликовать это в отдельном вопросе, так как это другая ошибка. - person swestner; 11.09.2016
comment
Также похоже, что данные не кодируются в URL-адресе, судя по ошибке. Вы пытались разрешить это как json? Настроена ли конечная точка вашего узла для обработки json? Если нет, я бы, вероятно, настроил его и использовал json, если нет веской причины придерживаться формы кодировки URL. - person swestner; 11.09.2016