如何让Rest Spring与JS一起工作

时间:2017-02-28 20:23:47

标签: javascript java ajax spring

民间

我在使用javascript消费休息时遇到问题。

此Rest已经在其他应用程序中使用,其中PHP和Aspx保留了下面描述的相同内容。

@Controller
@RequestMapping("/userlogin")
public class UserRest {
    @Autowired
    private UserService userService;

    @RequestMapping(value = "/login", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseStatus(HttpStatus.OK)
    public ResponseEntity<RetornUser> login(@RequestBody User user) {
        RetornUser retornUser = new RetornUser();
        try {
            user = userService.autenticarUsuario(user);
            retornUser.setUsuario(usuario);
            retornUser.setCodigoRetorno(1);
        } catch (Exception e) {
            retornUser.setCodigoRetorno(-1);
            retornUser.setMensagem(e.getMessage());
        }
        return new ResponseEntity<>(retornUser, HttpStatus.OK);
    }
}

上面的代码与PHP,Aspx和Java调用完美配合。

当我调用例程时,JS会在收到返回之前进入错误函数。

最糟糕的是,JS错误并没有带来原因。在纯HTML的代码下面。

function logar() {
    try {
        var json = JSON.stringify(usuario);
        json = "{\"nome\": \"garra\",\"senha\": \"1234\"}";

        $.ajax({
            type: "POST",
            url: "http://localhost:8080/garrasystem/webservice/userlogin/login",
            data: json,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            timeout: 300000, // sets timeout to 3 seconds
            success: function (retorno) {
                alert(retorno);
            },
            error: function (data, textStatus, xhr) {
                alert(data.responseText);
            }
        });
    } catch (e) {
        console.log(e);
    }
}

它的存在方式,当我发送调试时,它调用普通的登录方法,但它属于错误函数,也不期望登录方法执行返回。

我把方法只返回String,也没有。

我的春天是4岁。

我正在等待一些帮助

Vinicius Castro

2 个答案:

答案 0 :(得分:0)

看起来你正在传递string而不是json对象。你能尝试传递以下内容:

var data = {
    nome: "garra",
    senha: "1234"
};

答案 1 :(得分:0)

民间 由于专注于单个问题,我忘了分析按钮类型。这就像类型提交,所以它没有工作。就像经历这些错误一样。

感谢所有支持我的人