AngularJS - Застревание ответа после $ resource.save (ожидается json)

0

Привет, прежде всего, спасибо за вашу поддержку,

Я начинаю с углового, и я пытаюсь использовать данные conmsume из API для своего приложения. У меня с этим несколько проблем. Прежде всего, CORS:

Для запуска локального http-сервера я использую тот, который поставляется с node.js (с помощью команды http-server). Я использую http://www.mocky.io/ для тестирования приложения. Я создал разные (с заголовками, которые я нашел по сети, которые должны были исправить) ответ там, чтобы попытаться исправить CORS (всегда получать предполетную ошибку), но ничего не работает. Я добавил это к моему методу сохранения (внутри фабрики):

save: {
            method: 'POST',
            headers: {
                'Access-Control-Allow-Origin': '*'
            }
}

Если я использую расширение Chrome под названием CORS, я могу обойти это и получить ответ, но тогда я не могу управлять обещанием и получить данные внутри ответа. Я хотел бы иметь возможность показать ответ json на представление.

$scope.submitForm = function() {
    var promise = null;
    promise = CheckFactory.save($scope.partner).$promise;
    $scope.result = promise.data;
}

Эти функции отправляют данные из формы на завод и выполняют запрос, но затем я теряюсь и не знаю, как управлять данными, которые мне нужны из ответа.

Заранее спасибо :)

Теги:
cors
angular-resource

1 ответ

2
Лучший ответ

В основном вам нужно поставить функцию .then над вашим вызовом метода save. Так что будет вызывать .then функцию когда данные сохранить запрос будет завершен.

$scope.submitForm = function() {
    CheckFactory.save($scope.partner).$promise
    //it will called success callback when save promise resolved.
    .then(function(data){ //success
       $scope.result = data;
    }, function(error){ //error
    });
}
  • 0
    Сладкий :) это работало без нареканий. Что-нибудь о получении этой работы с CORS? Я не хочу использовать расширение Chrome, если это возможно, но я не могу этого сделать. Спасибо за ваш сверхбыстрый ответ.
  • 0
    @ Nikos4Life, вы также должны установить CORS на стороне сервера, и, делая запрос к заголовку, вы должны передавать несколько заголовков с каждым запросом :)
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню