2011-04-16 106 views
1

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

$.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(); 
    } 
} 

感谢,并事先我道歉,如果这是相当直观。

回答

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,你被要求从数据。

+0

感谢您的帮助,但不幸的是,这并没有解决它。 – Conner 2011-04-16 23:34:56

+0

我已经更新了答案 – Quentin 2011-04-17 08:48:31