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:

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?
 
    