Skip to main content

XMLHTTPREQUEST Keeps Returning Empty Line When I Send A Request

I am trying to make a login function where it filters through the rest api. The API itself works on localhost and when I enter the local host address(http://localhost:3000/config/username) myself in a browser it works completely fine, but when I try to access it via XMLHTTPREQUEST it keeps returning an empty line. I have tried many things, but it either returns undefined, null, a CORS error, or just doesn't do anything at all.

My Javascript Code Is:

async function getLogin(){
  console.log('------')
  let usernameElement = document.querySelector('#username')
  let passwordElement = document.querySelector('#password')
  const url = `http://localhost:3000/config/${usernameElement.value}`
  try {
    const request = new XMLHttpRequest()
    request.open("GET", url, true);
    let jsonResponse;
    request.send()
    request.onload = function(){
      jsonResponse = request.response
    };
    alert(request.response)
  } catch(err){
    alert(err)
  }
}

And my html is

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="initial-scale=1.0">
  <link rel="stylesheet" href="css/form.css">
  <script src="scripts/login.js"></script>
  <title>Game Login</title>
  <link rel="icon" href="../tools/images/favicon.ico" type="image/x-icon">
</head>
<body>
  <section>
    <h1>Login</h1>
    <form>
      <div class="input-group">
        <input type="text" id="username" class="input" required>
        <label class="input-label">Username</label>
      </div>
      <div class="input-group">
        <input type="password" id="password" class="input" required>
        <label class="input-label">Password</label>
      </div>
      <input type="submit" onclick="getLogin()" class="submit">
    </form>
  </section>
  <div class="bottom">
    <p>Don't have an account? Click here to register</p>
    <a href="register.html">REGISTER</a>
  </div>
</body>

</html>

I have been checking the documentation, looking at other questions in stack overflow and much more, but I can't seem to find an apparent answer to this.

EDIT

I managed to sort of get it to work, but now in order for the results to show, you have to ctrl click submit instead of click it regularly and I am completely confused as to why. One thing that I noticed was that every time you submit it adds this weird ? at the end of the url (eg: file:///filepath/index.html?) and I think that this is causing problems in some way but I don't know how. The current code I am using is

async function getLogin(){
  console.log('------')
  let usernameElement = document.querySelector('#username')
  let passwordElement = document.querySelector('#password')

  if (usernameElement.value == '' | passwordElement.value == '') {
    alert('Error, no username/password given');
    return;
  }
  const url = `http://localhost:3000/config/${usernameElement.value}`
  try {
    const request = new XMLHttpRequest()
    request.open("GET", url, true);
    let jsonResponse;
    request.send()
    request.onload = function(){
      jsonResponse = request.response
      alert(request.response)
    };
  } catch(err){
    alert(err)
  }
}

Also I updated it so it now sends cors headers in my server.js file so now I am no longer getting cors errors. I am really confused as to why I have to ctrl click to get the alert, and about the extra question mark. If anyone has answers to this please tell me.

Via Active questions tagged javascript - Stack Overflow https://ift.tt/x9p2GDY

Comments

Popular posts from this blog

How to show number of registered users in Laravel based on usertype?

i'm trying to display data from the database in the admin dashboard i used this: <?php use Illuminate\Support\Facades\DB; $users = DB::table('users')->count(); echo $users; ?> and i have successfully get the correct data from the database but what if i want to display a specific data for example in this user table there is "usertype" that specify if the user is normal user or admin i want to user the same code above but to display a specific usertype i tried this: <?php use Illuminate\Support\Facades\DB; $users = DB::table('users')->count()->WHERE usertype =admin; echo $users; ?> but it didn't work, what am i doing wrong? source https://stackoverflow.com/questions/68199726/how-to-show-number-of-registered-users-in-laravel-based-on-usertype

Why is my reports service not connecting?

I am trying to pull some data from a Postgres database using Node.js and node-postures but I can't figure out why my service isn't connecting. my routes/index.js file: const express = require('express'); const router = express.Router(); const ordersCountController = require('../controllers/ordersCountController'); const ordersController = require('../controllers/ordersController'); const weeklyReportsController = require('../controllers/weeklyReportsController'); router.get('/orders_count', ordersCountController); router.get('/orders', ordersController); router.get('/weekly_reports', weeklyReportsController); module.exports = router; My controllers/weeklyReportsController.js file: const weeklyReportsService = require('../services/weeklyReportsService'); const weeklyReportsController = async (req, res) => { try { const data = await weeklyReportsService; res.json({data}) console...

How to split a rinex file if I need 24 hours data

Trying to divide rinex file using the command gfzrnx but getting this error. While doing that getting this error msg 'gfzrnx' is not recognized as an internal or external command Trying to split rinex file using the command gfzrnx. also install'gfzrnx'. my doubt is I need to run this program in 'gfzrnx' or in 'cmdprompt'. I am expecting a rinex file with 24 hrs or 1 day data.I Have 48 hrs data in RINEX format. Please help me to solve this issue. source https://stackoverflow.com/questions/75385367/how-to-split-a-rinex-file-if-i-need-24-hours-data