使用jQuery调用REST服务时未捕获的ReferenceError

时间:2015-11-12 18:03:05

标签: javascript jquery spring rest

我是网络服务的新手,所以我很感激这里的任何帮助。我使用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

对此的任何帮助都将非常感激,所以我能理解到底发生了什么。

提前感谢您的帮助。

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