我是网络服务的新手,所以我很感激这里的任何帮助。我使用Spring-boot创建了一个RESTful Web服务。我的网络服务代码很简单,因为我只是在测试:
@RestController
public class MainController {
@RequestMapping("/test")
public String getStringTest(@RequestParam(value="name", defaultValue="Test") String name){
System.out.println("Name received: " + name);
return "HelloTest: " + name;
}
}
部署Web服务之后,我可以使用:https://gist.run/?id=1847b233d0bfa14e0c6c4df1d7952597访问它,并在浏览器中获取“HelloTest”字符串,因此工作正常。但问题是,当我尝试在网页中使用jQuery访问它时,它无法正常工作。这是页面:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>
<p id="info"></p>
</body>
</html>
<script>
$(document).ready(function(){
$.ajax({
type: 'GET',
dataType: 'jsonp',
url: "http://localhost:8080/test?name=Gabriel",
success: function(data){
alert("Success: " + data);
},
error: function(){
alert("Something went wrong.");
}
});
})
</script>
当我执行我的页面时,我在控制台中收到以下错误消息:
未捕获的ReferenceError:未定义HelloTest(匿名函数) @ imagesTest?callback = jQuery1113027941066049970686_1447350578572&amp; _ = 1447350578573:1
对此的任何帮助都将非常感激,所以我能理解到底发生了什么。
提前感谢您的帮助。
答案 0 :(得分:1)
dataType: 'jsonp'
告诉jQuery期待JSONP,但是你返回一个普通的字符串"HelloTest: Gabriel"
将dataType
更改为更合适的内容,例如"text"
(或完全删除)
$.ajax({
type: 'GET',
dataType: 'text',
url: "http://localhost:8080/test?name=Gabriel",
success: function(data){
alert("Success: " + data);
},
error: function(){
alert("Something went wrong.");
}
});
可能的值列在api documentation方法的$.ajax