简体   繁体   中英

AJAX POST request in Spring-MVC does not works

I am learning Spring MVC and I have stuck at how to send a simple string value from client using AJAX and print it at JAVA server (controller). I have written below code for doing this. But when I click button to send string, error.... response is popped-up in my browser and the browser console displays POST http://localhost:8090/addUser 404 () . It has been a day since I am trying to solve this issue. Can someone please tell what can be the problem? Or please tell a working alternative solution for sending data from client using AJAX and printing/saving it on JAVA server (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 Request:

<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>

POST http://localhost:8090/addUser 404 ()

Your request is going to http://localhost:8090/addUser , which is not correct. Your request url should have your application and included.

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

AFAIK, your request url should have application name included. Now, to achieve this, you are suppose to change your ajax url

 url : "/<app_name>/addUser"

The URL for the ajax call is not correct. It should be like

Url:YourApplicationContextPath/ControllerName/addUser

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM