Angularjs $http.delete перерывы на ie8

$http.delete('/api/carts/' + productCode).
  success(function() {
    cart.products = someMethod();

    updateTotals();
  }).
  error(function() {
    console.log('Could not remove product from card: ' + productCode);
  });

IE8 жалуется, что "ожидаемый идентификатор" в первой строке. Код отлично работает в Firefox, Chrome и т.д.

Ответы

Ответ 1

Проблема заключается в том, что delete является ключевым словом javascript, а IE8 слегка анализирует его. Согласно стандарту, идентификаторы можно назвать delete. Быстрое исправление:

$http['delete']('/api/carts/' + productCode)

Немного уродливый, и я не думаю, что хорошие люди angular должны были назвать этот метод delete, но это исправляет вашу проблему

Ответ 2

$http.delete(path) является ярлыком для запросов DELETE. Так как ярлык разбивается на IE8, помимо вызова их уродливой формы: $http['delete'], вы можете вызывать с использованием исходного режима:

$http({method: 'DELETE', url: path})