размещение данных в запросе $ http post - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь опубликовать данные из моей формы в API на другом домене. Тело запроса возвращается пустым. Когда я go обращаюсь к devtools, полезная нагрузка отображается как [объектный объект]

. Я попытался установить различные заголовки, такие как 'Content-Type': 'application / json' или undefined, но не повезло

КОД

$ scope.form

{
   "name":"Test",
   "email":"test@test.com",
   "companyName":"company",
   "companySize":"6 - 10 employees",
   "manageTimeOff":true
}

функция отправки

$scope.submitForm = function () {
    $scope.success = false;
    $scope.loading = true;

    $http({
        url: url,
        method: 'POST',
        data: $scope.form,
        withCredentials: false,
        headers: { "Content-Type": "application/x-www-form-urlencoded" },
        transformRequest: angular.identity
    }).then(function (response) {
        console.log(response);
        $scope.loading = false;

        if (response.data.Error) {
            $scope.success = false;
            swal("Something's gone wrong ☹", response.data.Error, "error")
        } else {
            $scope.success = true;
            swal({
                title: "Form Submitted",
                text: "We look forward to speaking with you soon!",
                icon: "success"
            });

            $scope.resetForm();
        }
    });
}

1 Ответ

1 голос
/ 27 марта 2020

Тип содержимого x-www-form-urlencoded устарел. Разработайте бэкэнды для использования типа контента application/json, который по умолчанию поддерживает фреймворк AngularJS.

$http({
    url: url,
    method: 'POST',
    data: $scope.form,
    withCredentials: false,
    ̶h̶e̶a̶d̶e̶r̶s̶:̶ ̶{̶ ̶"̶C̶o̶n̶t̶e̶n̶t̶-̶T̶y̶p̶e̶"̶:̶ ̶"̶a̶p̶p̶l̶i̶c̶a̶t̶i̶o̶n̶/̶x̶-̶w̶w̶w̶-̶f̶o̶r̶m̶-̶u̶r̶l̶e̶n̶c̶o̶d̶e̶d̶"̶ ̶}̶,̶
    ̶t̶r̶a̶n̶s̶f̶o̶r̶m̶R̶e̶q̶u̶e̶s̶t̶:̶ ̶a̶n̶g̶u̶l̶a̶r̶.̶i̶d̶e̶n̶t̶i̶t̶y̶
}).then(function (response) {
    //...
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...