Jquery与本地服务器通信

时间:2011-04-16 22:41:45

标签: javascript jquery servlets

所以我试图通过jquery post方法与本地java服务器通信,但我没有太多运气。我使用的邮政编码是:

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

其中client ['plugins']是一个具有确认值的字符串。

我试图接收的servlet是(所有必要的导入):

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);
    }
}

好像这个servlet没有从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 个答案:

答案 0 :(得分:3)

当您说$.post('localhost:5051/receive'时,您可能意味着$.post('http://localhost:5051/receive',但这只有在您已经使用该主机和端口时才会起作用(same origin policy出于安全原因对此进行限制)所以您可能会这样做好好使用相对URI并说出$.post('/receive'

编辑。我刚发现:

  

请注意,javascript正在我刚刚在浏览器中打开的本地html文件上运行。

正如我之前所说,JS在中运行的页面必须the same host and port上作为您要求数据的URI。