I have button which submit login form. This button generate POST request for my session controller
Started POST "/login" for 127.0.0.1 at 2024-04-03 10:49:13 +0300 Processing by SessionsController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"B1kNyKftmEga+Dz7UZ25m4KUDZCn5p7z1qdsC/r84gPhbD9hPNmc4q4WH4IJdos+QS0LDAm0YMX8YpxpzWtPCw==", "session"=>{"email"=>"[email protected]", "password"=>"[FILTERED]"}, "lang"=>"en"} in route.rb
post '/login', to: 'sessions#create' But also I have ajax method for update user token
setTimeout( () => { if (typeof user_grants !== 'undefined') { if(!channels['user_session']) { userSessionChannel = new Channel("UserSessionChannel"); userSessionChannel.socketSubscribe(); userSessionChannel.socketCallBack( {event: 'user_login'} , "user_session", userSessionWebsocketRouter); userSessionChannel.socketTrackConnection(toggleDisconnectedModal, 'offline', websocket_keep_alive); channels['user_session'] = userSessionChannel; } const jwtUpdater = new PeriodicRunner(() => { $.ajax({ url: '/renew_jwt', type: 'GET', success: function (res) { if (res.ok) { app_config.jwt_encoded_user = res.data; ajaxSetup(); } }, error: function (error) { console.log(error); }, }); }, 300).start() } }, 0);
in routs.rb:
get '/renew_jwt', to: 'application#renew_jwt' in controller:
def renew_jwt return render json: {ok: true, data: jwt_encode_user} end def jwt_encode_user if Rails.env.stage? key = Rails.application.credentials.secret_key_base_dev elsif Rails.env.production? key = Rails.application.credentials.secret_key_base else key = Rails.application.credentials.secret_key_base_dev end payload = { user_id: current_user.id.to_s, exp: ((Time.now.to_f * 1000) + (60000 * 10)).to_i } response.headers['Cache-Control'] = 'no-cache' return JWT.encode payload, key, 'HS256' end And sometimes very rarely after login i see response for this ajax request instead of result of my submit request.
My question is: Why I get this result?

renew_jwtonly responds to and withApplication/JSON.