【问题标题】:AJAX POST request in Spring-MVC does not worksSpring-MVC 中的 AJAX POST 请求不起作用
【发布时间】:2018-01-30 03:35:47
【问题描述】:

我正在学习 Spring MVC,我一直坚持如何使用 AJAX 从客户端发送一个简单的字符串值并在 JAVA 服务器(控制器)上打印它。我写了下面的代码来做到这一点。但是当我点击按钮发送字符串时,error.... 响应在我的浏览器中弹出,浏览器控制台显示POST http://localhost:8090/addUser 404 ()。自从我试图解决这个问题以来已经有一天了。有人可以告诉我可能是什么问题吗?或者请告诉一个可行的替代解决方案,用于使用 AJAX 从客户端发送数据并将其打印/保存在 JAVA 服务器(Spring-MVC)上。

UserController.java

@Controller
public class UserController {

    @RequestMapping(value = "/addUser", method = RequestMethod.POST, consumes=MediaType.APPLICATION_JSON_VALUE, produces=MediaType.APPLICATION_JSON_VALUE)
    public JSONArray addUser(@ModelAttribute("UserTest") JSONArray name) {
        System.out.println(name.toString());
        return name;
    }
}

AJAX 请求:

<script>
    function addUser() {
        var json = '{"uname":"John", "Age":42}';
            obj = JSON.parse(json);
            $.ajax({
                    url : "/addUser",
                    data : obj,
                    type : "POST",
                    async: false,
                    contentType: "application/json",
                    success : function(response) {
                             alert( response );
                    },
                    error : function() {
                        alert("error...."); //this is being popped-up in my browser     
                    }
            });
       }
</script>

【问题讨论】:

  • 如果您使用 jsp 进行查看,请将 url 更改为 url:'${pageContext.request.contextPath}/addUser'

标签: javascript java ajax spring spring-mvc


【解决方案1】:

发布http://localhost:8090/addUser404 ()

您的请求将发送至http://localhost:8090/addUser,这是不正确的。您的请求网址应该包含您的应用程序并包含在内。

http://localhost:8090/<app_name>/addUser

AFAIK,您的请求网址应包含应用程序名称。现在,为了实现这一点,你应该改变你的 ajax url

 url : "/<app_name>/addUser"

【讨论】:

  • 现在收到此错误:Failed to load resource: the server responded with a status of 404 ()
  • @Agha 你能手动访问这个页面吗?如果是,那么网址是什么?另外,可以分享你的 web.xml 和 spring xml 文件吗?
【解决方案2】:

ajax 调用的 URL 不正确。应该是这样的

网址:YourApplicationContextPath/ControllerName/addUser

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-06
    • 2016-11-28
    • 2016-11-05
    • 1970-01-01
    • 1970-01-01
    • 2017-08-10
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多