Как работать, если данные, возвращаемые из $http.get() не в формате JSON, это обычный текст?
Я использую API для запроса данных от указанного ресурса.
$http.get('http:...').success(function() {
});
Но я получаю ошибку
"SyntaxError: неожиданный токен r в JSON в позиции 1",
Как мы можем справиться с этой проблемой?
3 ответа
.success
а также .error
методы были удалены из AngularJS 1.6.
Вместо
$http.get(...)
.success(function(data, ...) {
...
})
.error(function(data, ...) {
...
});
использование
$http.get(...).then(
function success(response) {
var data = response.data;
...
},function error(response) {
var data = response.data;
});
Переопределить преобразование ответа по умолчанию JSON.parse
Если тип контента application/json
или ответ выглядит как JSON. Служба $http десериализует его с помощью анализатора JSON.
Чтобы избежать этого, настройте transformResponse
Свойство передать ответ без какого-либо преобразования:
var config = { transformResponse: angular.identity };
$http.get(url, config).then(function(response) {
console.log(response.data);
});
Для получения дополнительной информации см. Служба AngularJS $http - Переопределение преобразований по умолчанию на запрос
Json используется по умолчанию, вы можете установить ожидаемый тип ответа на text
:
$http.get('http:...', {responseType: "text"}).success(function(reponse) {
console.log(reponse);
});
Более подробную информацию можно найти в AngularJS документах