# HG changeset patch # User Ross Thomas # Date 2020-02-07 22:55:27 # Node ID dac0bff4d2a33ba791104a84061ac5f7a1a944b9 # Parent b495947ac1748e5606a1a0c56a71a435d3157945 follow: Fix args for $.post() call in toggleFollowingRepo() Before, the resulting query string was _literally_ like: ?follows_repository_id=xxx&_session_csrf_secret_token=yyy The server side stack ended up parsing it as: >>> urllib.parse.parse_qsl("follows_repository_id=xxx&_session_csrf_secret_token=yyy", keep_blank_values=True) [('follows_repository_id', 'xxx'), ('amp', ''), ('_session_csrf_secret_token', 'yyy')] because the HTML encoding of & isn't relevant here and it thus looks like a "matrix URL" (as drafted on https://www.w3.org/DesignIssues/MatrixURIs.html ) with the following values: param: follows_repository_id = xxx param: amp = matrix: _session_csrf_secret_token = yyy It thus ended up with the right values (if ignoring 'amp') and it thus worked anyway. Instead, clean it up and just pass a dict to jQuery.post as intended. diff --git a/kallithea/public/js/base.js b/kallithea/public/js/base.js --- a/kallithea/public/js/base.js +++ b/kallithea/public/js/base.js @@ -457,8 +457,10 @@ var _onSuccessFollow = function(target){ } var toggleFollowingRepo = function(target, follows_repository_id){ - var args = 'follows_repository_id=' + follows_repository_id; - args += '&_session_csrf_secret_token=' + _session_csrf_secret_token; + var args = { + 'follows_repository_id': follows_repository_id, + '_session_csrf_secret_token': _session_csrf_secret_token + } $.post(TOGGLE_FOLLOW_URL, args, function(data){ _onSuccessFollow(target); });