Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

184
Views
How to send POST request from browser?

I'm trying to make a server in java that can handle requests sent from the browser. My problem is that I can't get the browser to actually send the request, all it sends is an OPTIONS request. Here's the error in the browser: enter image description here

It isn't an actual website that I'm using, it's just an html page that would be opened by the java application. Here's the html:

<!DOCTYPE html>
<html>

<body>
    <button type="button" onclick="sendRequest()">Click Me!</button>
    <script>
        function sendRequest() {
            var xhr = new XMLHttpRequest();
            xhr.open("POST", "http://172.26.48.1:9000/test", true);
            xhr.setRequestHeader("Content-Type", "application/json");
            xhr.send(JSON.stringify({
                "time": 16400
            }));
        }
    </script>
</body>

</html>

And here's the java server that listens for the requests:

public class ServerTest
{
    public static void main(String[] args) throws Exception
    {
        HttpServer server = HttpServer.create(new InetSocketAddress(9000), 0);
        server.createContext("/test", new MyHandler());
        server.setExecutor(null);
        server.start();
    }

    static class MyHandler implements HttpHandler
    {
        public void handle(HttpExchange exchange) throws IOException
        {
            System.out.println("Handling request: " + exchange.getRequestMethod());

            if (exchange.getRequestMethod().equalsIgnoreCase("POST") ||         
            exchange.getRequestMethod().equalsIgnoreCase("OPTIONS"))
            {
                try
                {
                    InputStream is = exchange.getRequestBody();
                    StringBuilder sb = new StringBuilder();
                    for (int ch; (ch = is.read()) != -1;)
                        sb.append((char) ch);

                    System.out.println(sb.toString());

                    String response = "OK";
                    exchange.sendResponseHeaders(200, response.length());
                    OutputStream os = exchange.getResponseBody();
                    os.write(response.getBytes());
                    os.close();
                    exchange.close();
                } catch (NumberFormatException e)
                {
                    e.printStackTrace();
                }
            }
        }
    }
}

The server works fine, but it only receives the OPTIONS request. How can I make the html page send the actual POST request?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

function sendRequest() {
   var xhttp = new XMLHttpRequest();
   xhttp.open("POST", "http://172.26.48.1:9000/test", true); 
   xhttp.setRequestHeader("Content-Type", "application/json");
   xhttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
        // Response
        var response = this.responseText;
      }
   };
   xhttp..send(JSON.stringify({
                "time": 16400
            }));
}
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!