Я использую $routeProvider и $locationProvider для обработки URL-адресов pushstate в одностраничном приложении (SPA), примерно так:
angular.module('pets', [])
.config(function($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider.when('/pet/:petId', {
controller: 'petController'
});
})
.controller('petController', function($scope, petService, $routeParams){
petService.get('/api/pets/' + $routeParams.petId).success(function(data) {
$scope.pet = data;
});
});
URL-адрес используется для извлечения контента с сервера, который может существовать или не существовать.
Если бы это был обычный многостраничный веб-сайт, запрос отсутствующего контента вызвал бы ответ заголовка 404 от сервера, а запрос перемещенного контента вызвал бы 301. Это предупредило бы Google об отсутствующем или перемещенном контенте.
Скажем, например, я попал по такому URL-адресу:
http://example.com/pet/123456
и сказать, что в базе данных нет такого питомца, как мой SPA может вернуть 404 для этого контента.
В противном случае есть ли какой-либо другой способ правильно предупредить пользователя или поисковую систему о том, что запрошенный URL-адрес не существует? Есть ли какое-то другое решение, которое я не рассматриваю?
get
следует отклонить и передать обратному вызовуerror
:.success(cb).error(cb)
. Это то, что вы ищете? - person Davin Tryon   schedule 06.01.2015