I've finally sourced the issue! I was running my Javascript using Live Server, which was forcing a page reload when the requests were sent off. Went back to basics, running without Live Server and everything is working as intended. On Tuesday, August 24, 2021 at 1:10:27 PM UTC+2 Nicholas Bunn wrote:
> Been working on other stuff in between trying to solve this but I have a > potential source to the odd behaviour. The page reloads whenever requests > are sent, is it possible that the requests aren't received when the page is > reloaded? If this is the case, the error is caught for an invalid user > because the DB response is fast enough to return before the page reloads, > but when the user does exist the response is marginally slower such that it > returns after the page reload. I've been trying to test this by using > event.preventDefault() but this hasn't solved it so I'm not entirely sure. > > On Friday, August 20, 2021 at 8:28:02 AM UTC+2 Nicholas Bunn wrote: > >> Hi all, >> >> I'm very new to Javascript and everything frontend (started playing >> around with it all on Monday so any and every kind of input here would be >> appreciated). I'm currently trying to set up a login page for a project I'm >> working on which just verifies that a user exists in a DB, checks the >> passwords, and generates and returns an auth token if everything checks >> out. I've written all the logic for this in a Go service that exposes >> itself on port 50000 (I've also tested this service and know that >> everything here is working). As per the documentation, I've set up an Envoy >> proxy that routes JS requests on port 8080 to the Go server at 50000 and, >> as far as I can tell, this is working too. Using Bloom RPC to test things, >> I've verified that the Envoy Proxy returns the errors I want when incorrect >> details are provided and returns the auth token when the correct ones are >> given. >> >> The relevant code snippet, from my index.js ( >> https://github.com/NicholasBunn/mastersCaseStudy/blob/main/services/webFrontend/index.js), >> >> is: >> ``` >> var username = document.getElementById("username").value; >> var password = document.getElementById("password").value; >> >> console.log("Username is: ", username, " and password is: ", password); >> var loginService = new LoginServiceClient("http://localhost:8080"); >> >> var request = new LoginRequest(); >> >> request.setUsername(username); >> request.setPassword(password); >> >> loginService.login(request, {}, function (err, res) { >> console.log("error:", err, " response:", res); >> }); >> ``` >> >> I suspect that the issue I'm having lies somewhere between Envoy and my >> JS frontend. When I make a login request with no username or an incorrect >> username, the expected error is written to the console in my browser (it's >> behaving as intended). However, as soon as I make a login request with an >> existing username (regardless of whether the password is correct or not), >> nothing is printed to the console. It's as if the response just skips all >> the code in the callback function. >> >> If I check the log files for my backend services during this behaviour, >> the requests are going through and being processed perfectly with the >> responses being sent back through exactly as expected. I'm not too sure how >> to debug the proxy, and with that being the last place I can trace expected >> behaviour I suspect the problem is either in my Envoy setup or in the way >> I'm handling responses in JS. My Envoy setup can be found at >> https://github.com/NicholasBunn/mastersCaseStudy/blob/main/services/envoyProxy/envoy.yaml >> >> - for the most part, it's the same as the Envoy setup given in the >> documentation. >> >> Am I doing something blatantly wrong here? >> >> Nic >> > -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/92fe65d4-7e79-4388-b815-0870dd597a99n%40googlegroups.com.
