【问题标题】:Cannot send ajax post request to Servlet无法向 Servlet 发送 ajax 发布请求
【发布时间】:2014-11-24 13:52:31
【问题描述】:

这是我的代码。,

Javascript

$(document).ready(function()
    {
        $("button").click(function(){
            $.post("AjaxpostloginServlet.java",
                {
                 name:"kevin",
                 pass:"Duckburg"
             });
         });
});

Java servlet

package com.iappuniverse.ajaxpostlogin;

 import java.io.IOException;
 import javax.servlet.http.*;

 @SuppressWarnings("serial")
 public class AjaxpostloginServlet extends HttpServlet
    {
         public void doPost(HttpServletRequest req, HttpServletResponse resp)throws     IOException
           {

              String name=req.getParameter("name");

              System.out.println(name);

           }
    }

servlet 中的名称不会打印在控制台中。尝试使用 ajax .post() 向服务器发送数据,但无法使链接到 ajax .post() 调用的 servlet 运行。

【问题讨论】:

标签: java jquery ajax post


【解决方案1】:

将您的 web.xml 更改为如下所示

<?xml version="1.0" encoding="ISO-8859-1" ?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">

    <display-name>Application</display-name>
    <description>
        Description Example.
    </description>

    <servlet>
        <servlet-name>login</servlet-name>
        <servlet-class>AjaxpostloginServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>login</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>
</web-app>

让我们更进一步,更改您的 servlet 发布方法

public void doPost(HttpServletRequest req, HttpServletResponse resp)throws IOException {
       String name=req.getParameter("name");
       response.setContentType("text/plain");
       response.setCharacterEncoding("UTF-8");
       response.getWriter().write(name);

}

最后改变ajax调用的url,使用回调函数。

$(document).ready(function() {
        $("button").click(function() {
            $.post("login",{
                 name:"kevin",
                 pass:"Duckburg"
             }).done(function( data ) {
                  alert( "name: " + data );
             })
         });
});

免责声明: 我没有测试过!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 2015-10-16
    • 2019-10-08
    相关资源
    最近更新 更多