Как указать dataType: 'json' в Angular.js $http.post?

Я хотел бы указать dataType: 'json' как в обычном jQuery $.ajax. Возможно ли это с помощью Angular.js $http.post?

Ответ 1

Из http://docs.angularjs.org/api/ng.$http

Преобразование запросов и ответов Оба запроса и ответы могут быть преобразованы с использованием функций преобразования. По умолчанию Angular применяет следующие преобразования:

Преобразования запроса:

  • если свойство данных объекта конфигурации запроса содержит объект, сериализуйте его в формате JSON. Преобразования ответов:

  • если обнаружен префикс XSRF, разделите его (см. раздел "Вопросы безопасности" ниже)

  • , если обнаружен json-ответ, десериализуйте его с помощью анализатора JSON

Поэтому нет необходимости устанавливать тип данных, это делается автоматически

Ответ 2

Вы можете использовать объект HTTP Config для установки заголовков:

$http({
    method: 'POST',
    url: 'somewhere.xyz',
    headers: {
        'Content-type': 'application/json'
    }
})

Ответ 3

У меня была та же проблема, responseType:'json' решил проблему

Вы можете использовать responseType: 'json' вместо dataType: 'json'

var promise = $http({
            method: 'POST',
            url: 'somewhere.xyz',
            responseType:'json'

        });

Для дальнейших ссылок https://docs.angularjs.org/api/ng/service/$http#methods_jsonp