avoid various HTTP server issues with slashes by putting notePath into the body with POST

This commit is contained in:
zadam 2019-02-17 20:49:51 +01:00
parent a7fce33750
commit c1ce0c6b22
3 changed files with 4 additions and 6 deletions

View File

@ -331,7 +331,7 @@ function addRecentNote(branchId, notePath) {
setTimeout(async () => {
// we include the note into recent list only if the user stayed on the note at least 5 seconds
if (notePath && notePath === getCurrentNotePath()) {
await server.put('recent-notes/' + branchId + '/' + encodeURIComponent(notePath));
await server.post('recent-notes', { branchId, notePath });
}
}, 1500);
}

View File

@ -4,8 +4,8 @@ const optionService = require('../../services/options');
const RecentNote = require('../../entities/recent_note');
async function addRecentNote(req) {
const branchId = req.params.branchId;
const notePath = req.params.notePath;
const branchId = req.body.branchId;
const notePath = req.body.notePath;
await new RecentNote({
branchId: branchId,

View File

@ -172,9 +172,7 @@ function register(app) {
apiRoute(GET, '/api/event-log', eventLogRoute.getEventLog);
// * at the end means this will match params containing slash as well
// this is a problem with nginx (and possibly other proxies) which translate escaped slash back to the literal slash character
apiRoute(PUT, '/api/recent-notes/:branchId/:notePath*', recentNotesRoute.addRecentNote);
apiRoute(POST, '/api/recent-notes', recentNotesRoute.addRecentNote);
apiRoute(GET, '/api/app-info', appInfoRoute.getAppInfo);
route(GET, '/api/setup/status', [], setupApiRoute.getStatus, apiResultHandler);