Index: src/routes/posts.js
===================================================================
--- src/routes/posts.js	(revision 3d37c67eac468afbad44f6ddb74c5ae3ca0984fc)
+++ src/routes/posts.js	(revision c7ecaf9d21f6baddcb99a2593e829187df0baacc)
@@ -511,6 +511,7 @@
   const site = res.locals.site;
   const uri = (req.body.uri || '').toString();
+  let on = false;
   if (site && uri) {
-    const on = !ActivityPubService.getMyReactions(site.slug, uri).liked;
+    on = !ActivityPubService.getMyReactions(site.slug, uri).liked;
     ActivityPubService.resolveRemoteNote(uri)
       .then((note) => note && ActivityPubService.sendInteraction(site, on ? 'like' : 'unlike', note.object_uri || uri, note.actor_uri))
@@ -518,4 +519,5 @@
     ActivityPubService.setMyReaction(site.slug, uri, 'like', on);
   }
+  if (req.get('X-Requested-With') === 'fetch') return res.json({ ok: true, on });
   res.redirect('/authorize_interaction?uri=' + encodeURIComponent(uri));
 });
@@ -526,6 +528,7 @@
   const site = res.locals.site;
   const uri = (req.body.uri || '').toString();
+  let on = false;
   if (site && uri) {
-    const on = !ActivityPubService.getMyReactions(site.slug, uri).boosted;
+    on = !ActivityPubService.getMyReactions(site.slug, uri).boosted;
     ActivityPubService.resolveRemoteNote(uri)
       .then((note) => {
@@ -538,4 +541,5 @@
     ActivityPubService.setMyReaction(site.slug, uri, 'boost', on);
   }
+  if (req.get('X-Requested-With') === 'fetch') return res.json({ ok: true, on });
   res.redirect('/authorize_interaction?uri=' + encodeURIComponent(uri));
 });
