Обмен данными Jquery с локальным сервером

#javascript #jquery #servlets

#javascript #jquery #сервлеты

Вопрос:

Итак, я пытаюсь связаться с локальным Java-сервером с помощью метода jquery post, но мне не очень везет. Почтовый индекс, который я использую, является:

     $.post('localhost:5051/receive', {'plugs':client['plugins']});
  

где client[‘plugins’] — это строка, имеющая подтвержденное значение.

Сервлет, с помощью которого я пытаюсь это получить, является (всем необходимым импортом):

 public class BaseServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public BaseServlet() {
        super();
    }

    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        String plugins = request.getParameter("plugs");
        System.out.println("HERE");
        System.out.println(plugins);
    }
}
  

Кажется, что этот сервлет не получает никаких сообщений от метода post.

Обратите внимание, что javascript запущен в локальном HTML-файле, который я только что открыл в своем браузере.

Ниже приведен базовый серверный код со всем необходимым импортом:

 public class MyServer {

    public static void main(String[] args) throws Exception {
         Server server = new Server();
        Connector connector = new SocketConnector();
    connector.setPort(5051);
    server.setConnectors(new Connector[]{connector});

    ServletHandler handler=new ServletHandler();
    server.setHandler(handler);

    handler.addServletWithMapping("BaseServlet", "/receive");

    server.start();
    server.join();
    }
}
  

Спасибо и заранее приношу извинения, если это довольно интуитивно.

Ответ №1:

Когда вы говорите, $.post('localhost:5051/receive' вы, вероятно, имеете в виду $.post('http://localhost:5051/receive' , но это сработает, только если вы уже используете этот хост и порт (политика того же источника ограничивает это по соображениям безопасности), поэтому вы также можете использовать относительный URI и сказать $.post('/receive'

Редактировать. Я только что заметил:

Обратите внимание, что javascript запущен в локальном HTML-файле, который я только что открыл в своем браузере.

Как я уже говорил ранее, страница, на которой выполняется JS, должна находиться на том же хосте и порту, что и URI, с которого запрашиваются данные.

Комментарии:

1. Спасибо за вашу помощь, но, к сожалению, это не решило проблему.