【问题标题】:Calling Restful Web service using jQuery ajax使用 jQuery ajax 调用 Restful Web 服务
【发布时间】:2013-04-22 16:53:07
【问题描述】:

我在 Java 的 localhost 上创建了一个 RESTful Web 服务。当我在导航器地址栏中输入以下网址时:

http://localhost:8080/GeonotesApp2-war/webresources/route/1

它会给我:

{"rid":"1","routeComment":"hhhahahahah","routeDateCreate":"2012-04-03T00:00:00+02:00","routeDistance":"13400.0","routeName":"route1","routeUserId":"1"}

现在我想使用 Ajax 调用通过此脚本获取此 JSON 信息:

<html >
<head>
    <meta charset="utf-8">
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script>
    $(function(){
        $.ajax({
            type: "GET",
            url: "http://localhost:8080/GeonotesApp2-war/webresources/route/1",
            dataType: 'json',
            headers: {
                Accept: "application/json",
                "Access-Control-Allow-Origin": "*"
            },
            success: function(resp) {
                alert("success");
            },
            error: function(e) {
                alert("error: "+e);
            }
        });
    });

</script>   
</head>
<body>
    Hello Test Service!
</body>

但是我总是收到错误消息:

error: [object Object]

我找到了这篇文章并完全按照它的作用进行操作,但不起作用。谁能告诉我为什么?谢谢

Calling Rest webservice using JQuery Ajax call , web service is returning JSON string

【问题讨论】:

  • 把你的错误处理器改成function (jqXHR, textStatus, errorThrown ),然后你就可以看到实际的错误是什么了。您返回的 [object Ojbect] 是 jqXHR 对象。
  • @G_M 我尝试将错误处理程序更改为函数(jqXHR,textStatus,errorThrown),我警告 textStatus,它显示:错误:错误,当我警告 errorThrown 时,'错误:之后没有任何内容: '
  • jqXHR.responseText 呢?

标签: jquery ajax web-services rest


【解决方案1】:

标头必须在服务端。所以浏览器知道服务器允许这个网站使用Ajax来加载数据。所以这些标题:

Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET

链接:

【讨论】:

  • 仅当您从不同的域加载时。否则你会得到一个security error
猜你喜欢
  • 2015-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-30
相关资源
最近更新 更多