2017-01-31 3 views
0

Я фактически работаю над веб-клиентом, вызывающим службу REST. После моего последнего вопроса, запрос GET теперь работает. Теперь я хочу o реализовать запрос DEL с использованием метода удаления углов. В следующем примере реализован мой запрос на обслуживание.

function ItemsService($http) { 
    this.$http = $http; 
} 

ItemsService.prototype = { 
    deleteFoo: function (id) { 
     this.$http.delete('http://localhost:3001/posts/' + id) 
      .then(function successCallback(response) { 
       console.log("DEL send..."); 
       console.log(response.data); 
      }, function errorCallback(response) { 
       console.log('Error'); 
      }); 
    } 
} 

module.exports = { 
    ItemsService: ItemsService 
} 

Я добавил кнопку на веб-странице с ng-click="$ctrl.deleteMe()". Контроллер выглядит как в следующем примере:

function Foo(ItemsService) { 
    this.itemsService = ItemsService; 
} 

Foo.prototype = { 
    deleteMe: function() { 
     console.log('delete now'); 
     this.itemsService.deleteFoo(1).then(
      response => { 
       console.log('gelöscht? ' + response); 
      } 
     ); 
    } 
}; 

Если я теперь нажать на кнопку, ничего не происходит. В журнале трассировки сети в инструментах dev в браузере я не вижу запроса DEL. Чтобы проверить этот запрос службы REST, я запустил инструмент JSON Server на порт 3001. Я проверяю доступность сервера с SOAPUI, он работает, я вижу все запросы в консоли. Но без запроса с моей тестовой веб-страницы.

Может ли кто-нибудь мне помочь?

+0

Same Origin Policy? Работает ли Javascript на порту: 3001? –

+0

'delete' - зарезервированное ключевое слово в js. Я не думаю, что вам нужно назначить целый новый «прототип», но вместо этого нужно «Foo.prototype.deleteMe = function..' – devqon

+0

@devqon в любом случае, ng [использует его] (https: //docs.angularjs. орг/API/нг/сервис/$ HTTP # удалить). Но вы можете быть правы, что его нужно изменить в прототипе. –

ответ

0

Вы должны вернуть

return this.$http.delete('http://localhost:3001/posts/' + id) 
      .then(function successCallback(response) { 
       console.log("DEL send..."); 
       console.log(response.data); 
      }, function errorCallback(response) { 
       console.log('Error'); 
      }); 
+0

Спасибо. В более ранней версии моего примера я сделал это, но система не отправляет никаких запросов ... :( – vandango

+0

, когда вы нажимаете кнопку, сначала проверьте, работает ли она $ ctrl.deleteMe() с помощью console.log ('works') –

+0

вы можете поделиться своим html также? –

Смежные вопросы