Προσαρμόστε τις σελίδες 404 και 401
Όταν το Total.js δεν μπορεί να εξυπηρετήσει ένα αίτημα, εμφανίζει μια ενσωματωμένη σελίδα σφάλματος. Μια διαδρομή με URL # συν τον κωδικό κατάστασης την αντικαθιστά: ROUTE('#404', fn) για «δεν βρέθηκε», ROUTE('#401', fn) για «μη εξουσιοδοτημένο», και το ίδιο για #400, #431 και άλλα. Ο χειριστής λαμβάνει $ όπως κάθε διαδρομή, αλλά την κατάσταση την ορίζετε εσείς με το $.response.status: το Total.js δεν το κάνει για εσάς όταν υπάρχει δικός σας χειριστής. Χωρίς δικό σας χειριστή χρησιμοποιείται η ενσωματωμένη σελίδα και τα αιτήματα AJAX (κεφαλίδα x-requested-with) λαμβάνουν σφάλμα JSON αντί για HTML.
Το $.fallback(code) στέλνει το τρέχον αίτημα στον χειριστή για το code, που είναι ο τρόπος να απαντήσετε 404 για μια εγγραφή που δεν υπάρχει ή 403 για έναν απαγορευμένο πόρο από τον δικό σας κώδικα.
exports.install = function() {
ROUTE('#404', not_found);
ROUTE('#401', unauthorized);
ROUTE('GET /items/{id}/', item);
ROUTE('+GET /private/', private_page);
};
var items = { '1': 'First item' };
function item($) {
var name = items[$.params.id];
if (name)
$.json({ name: name });
else
$.fallback(404);
}
function private_page($) {
$.plain('secret');
}
function not_found($) {
$.response.status = 404;
$.html('<h1>Nothing here</h1><p>' + $.url.encode() + ' does not exist.</p>');
}
function unauthorized($) {
$.response.status = 401;
$.json({ error: 'Please sign in first' });
}
AUTH(function($) {
$.invalid();
});