Как работать, если данные, возвращаемые из $ http.get () не в формате JSON, это обычный текст? - PullRequest
0 голосов
/ 12 июня 2018

Я использую API для запроса данных от указанного ресурса.

$http.get('http:...').success(function() {

});

Но я получаю ошибку

"SyntaxError: Неожиданный токен r в JSON в позиции 1",

Как мы можем справиться с этимвопрос

Ответы [ 3 ]

0 голосов
/ 12 июня 2018

Переопределить преобразование ответа по умолчанию JSON.parse

Если Content-Type равен application/json или ответ выглядит как JSON, служба $ http десериализует его с помощью анализатора JSON.

Чтобы избежать этого, настройте свойство transformResponse для передачи ответа без каких-либо преобразований:

var config = { transformResponse: angular.identity };

$http.get(url, config).then(function(response) {
    console.log(response.data);
});

Для получения дополнительной информации см. AngularJS $ http Service - Переопределение преобразований по умолчанию для запроса

0 голосов
/ 12 июня 2018

Методы .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;
});
0 голосов
/ 12 июня 2018

Json по умолчанию, вы можете установить ожидаемый тип ответа на text:

$http.get('http:...', {responseType: "text"}).success(function(reponse) {
    console.log(reponse);
});

Более подробную информацию можно найти в AngularJS документах

...