-1

我正在尝试从 JavaScript 代码调用 Java Web 服务方法。Web 服务方法返回 String 类型,但是当通过 JavaScript 调用时,它会在 Chrome 控制台中出现以下错误:

未捕获的 SyntaxError:意外的令牌 <

Web服务方法如下:

public String getName(){
    name="hello";
    return name;
}

name是类级别变量。)

我为调用 Web 服务的上述方法而编写的 JavaScript 是:

<script type="text/javascript">
    function CallService() {
        $.ajax({
            type: "GET",
            url: "http://localhost:8080/TestWS/services/HelloWorld/getName",
            contentType: "application/xml; charset=utf-8",
            dataType: "jsonp text xml html",
            success: Success,
            error: Error
        });
    }

    function Success(data, status) {
        alert(data);
    }

    function Error(request, status, error) {
        alert(error);
    }
</script>

我尝试用谷歌搜索错误,但找不到任何解决方案。

4

1 回答 1

1

您应该只指定一个dataType. 现在,您似乎已经列出了所有可能的类型。此外,您指定contentType: "application/xml; charset=utf-8"了 ,但您没有随请求发送任何数据。最后,您指定了一个可能违反限制的绝对URLsame origin policy(您不能发送跨域Ajax请求)。

因此,在考虑了这些言论之后,您可以尝试:

<script type="text/javascript">
    function CallService() {
        $.ajax({
            type: "GET",
            url: "/TestWS/services/HelloWorld/getName",
            success: Success,
            error: Error
        });
    }

    function Success(data, status) {
        alert(data);
    }

    function Error(request, status, error) {
        alert(error);
    }
</script>

这显然假设您尝试使用的 Web 服务与托管您的 JavaScript 代码的页面托管在同一个域上。

如果不是这种情况,您可能会考虑使用JSONP,但要使其正常工作,您需要修改您的 Web 服务以支持它。

于 2013-07-07T14:56:13.550 回答