我编写了简单的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.
让我的网页正常运行。但我不认为这个解决方案。
答案 0 :(得分:1)
我会检查您的chrome开发者控制台(右键单击检查)并验证网络选项卡是否有错误(如果有)。基本上,检查所做的实际网址和网络调用是什么。
答案 1 :(得分:0)
我尝试使用保存在test.json中的json(以及指向它的ajax调用)并且它按原样为我工作。