使用jQuery消费Spring REST API

时间:2017-05-23 21:11:40

标签: javascript jquery json spring rest

我编写了简单的Spring REST webapp。现在我想用一些客户端来使用我的API。我决定编写jQuery客户端。

我在互联网上找到了一些例子,所以我尝试过这样的事情:

html的

s

的.js

<head>
    <title>Hello jQuery</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="hello.js"></script>
</head>
<body>
    <div>
        <p class="user-id">User id is </p>
        <p class="user-email">His email: </p>
        <p class="user-username">He is known as: </p>
    </div>
</body>

&#34; http://localhost:8080/api/v1/users/1&#34; 返回:

$(document).ready(function() {
    $.ajax({
        type: "GET",
        url: "http://localhost:8080/api/v1/users/1",
        dataType: "json"
        }).then(function(data) {
            $('.user-id').append(data.userId);
            $('.user-email').append(data.email);
            $('.user-username').append(data.username);
        });
});

但是当我通过Chrome打开html时,它不会获得任何数据。我做错了什么?

修改:使用{ "userId": 1, "email": "email2@at.pl", "password": "haslo123", "username": "witek", "birthday": "1992-07-12", "links": [ { "rel": "self", "href": "http://localhost:8080/api/v1/users/1" }, { "rel": "shopping-lists", "href": "http://localhost:8080/api/v1/users/1/shopping-lists" } ] } Chrome开发者控制台喊叫:url:/api/v1/users/1"

jquery.min.js:6 XMLHttpRequest cannot load file:///C:/api/v1/users/1. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.返回erorr url: "http://localhost:8080/api/v1/users/1"

临时解决方案: 发现了什么。在Chrome上启动我的网页就是这样开始的:No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.让我的网页正常运行。但我不认为这个解决方案。

2 个答案:

答案 0 :(得分:1)

我会检查您的chrome开发者控制台(右键单击检查)并验证网络选项卡是否有错误(如果有)。基本上,检查所做的实际网址和网络调用是什么。

答案 1 :(得分:0)

我尝试使用保存在test.json中的json(以及指向它的ajax调用)并且它按原样为我工作。