java - Ajax 调用 Spring 服务

标签 java jquery ajax spring-mvc

我正在尝试对我设置的 Spring REST 服务进行简单的 ajax 调用。

我的 Controller 定义如下:

@Controller
public class SongPlayerController {
    ....
    @RequestMapping(value = { "/ajax", "/ajax/" }, method = RequestMethod.GET)
    @ResponseBody
    public String ajax() {
        return "New Song URL";
    }
}

然后我有一个带有 ajax 请求的简单 html 页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript" src="jquery-1.8.3.js"></script>
<title>Insert title here</title>

<script type="text/javascript">
    function loadAjax() {
        $.ajax({
            type : "GET",
            url : "http://localhost:8080/song-player/ajax",
            data : "text",
            success : function(response) {
                $('#ajax').val(response);
            },
            error : function(e) {
                alert('Error: ' + e);
            }
        });
    }

    function getAjax() {
        $.getJSON('http://localhost:8080/song-player/ajax', function(data) {
            alert('Ajax data' + data);
        });
    }
</script>
</head>
<body>
    <button type="button" onclick="loadAjax()">Ajax Call</button>
    <div id="ajax">This will be an ajax call.</div>
</body>
</html>

但是,使用 $.ajax$.getJSON 都不会返回任何内容。使用 ajax 调用时,我收到错误“错误:[object Object]”。

但是,我知道我的 Controller 已正确设置,因为我可以使用 RESTClient Firefox add-on 访问我的服务并获得响应所以我认为问题在于我如何处理 jQuery 调用,但这是我第一次尝试使用 jQuery,所以我不知道它出了什么问题。

最佳答案

字符串文字“新歌曲 URL” 不是有效的 JSON。尝试返回此:

@Controller
public class SongPlayerController {
    @RequestMapping(value = { "/ajax", "/ajax/" }, method = RequestMethod.GET)
    @ResponseBody
    public String ajax() {
        return "{\"url\":\"New Song URL\"}";
    }
}

然后按如下方式访问该值:

function getAjax() {
    $.getJSON('http://localhost:8080/song-player/ajax', function(data) {
        alert('Ajax data' + data.url);
    });
}

关于java - Ajax 调用 Spring 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14063457/

相关文章:

java - 如何在 String.split() 中允许空字符串?

javascript - 如何在 wordpress 中的某些特定外部链接中添加 rel=nofollow

javascript - 查找页面中位置为 "absolute"的所有元素

javascript - jQuery remove() 不删除元素

java - Grails:直接从 src/java 使用 GORM 的最佳方式是什么?

java - 将 WAR 文件部署到远程服务器后出现错误(在本地机器上没有错误)

java - Android - Fragment 在 Activity 的 Buttons 后面

php - Jquery Ajax PHP 二维复选框数组

asp.net - 如何让 Ajax.Net PageMethod 返回 JSON

php - Laravel 以编程方式获取特定页面