【问题标题】:Simple RESTful client using Jquery error使用 Jquery 错误的简单 RESTful 客户端
【发布时间】:2014-03-16 15:50:45
【问题描述】:

jquery 的回调函数有问题。

让我们从头开始。我的宁静网络服务网址是这个

http://localhost :35055/new/webresources/generic/1

它会返回

{'name':'get', 'age':58}

而我与这个网络服务交互的 jquery 是

$(document).ready(function() {
    $.ajax({
        dataType: "json",
        url: '/webresources/generic/1',
        type: 'GET',
        data: ' ',
        success: function() {
            alert('PUT completed');
        }
    });
});

在jsp页面中链接

http://localhost:35055/new/tool.jsp 

没有警报消息。请建议我一种方法并调试此代码。

这是宁静的网络服务

    @GET
    @Produces("application/json")
    public String getJson( @PathParam("venki") int empno ) {
        if(empno==1)
        {
      return "{'name':'get', 'age':'58' }";
        }
        return "{'name':'error', 'age':'58' }";
        }

}

【问题讨论】:

  • 您确定将服务配置为期望 PUT 吗?
  • F12 in chrome,并阅读文档以了解所有可用选项!!!
  • @keune 嗨,我都试过了......不工作......get方法中的网络服务......即使它适用于正常的表单发布......但是,不使用jquery......
  • json 响应体不是合法的 JSON。请使用双引号
  • @shawnzhu bro...我更新了编码..看看,如果我更改双引号,那么它会显示错误。

标签: jquery ajax web-services restful-url


【解决方案1】:

如果您不熟悉使用 Fiddler 或内置浏览器工具检查网络流量,可以通过 $.ajax 调用的 error 属性公开错误。

$(document).ready(function() {
    $.ajax({
        dataType: "json",
        url: '/new/webresources/generic/1',
        type: 'GET',
        data: ' ',
        success: function() {
            alert('PUT completed');
        },
        error: function (xhr, ajaxOptions, thrownError) {
            alert(xhr.status);
            alert(thrownError);
          }
    });
});

【讨论】:

  • 非常感谢...它返回一些错误...它说....200, SyntaxError: JSON.parse: expected property name or '}'
  • 您很可能需要查看从服务发回的 JSON,以确保其格式正确。
  • 非常感谢@Scott 的帮助。这是编码对我找到确切错误非常有用。
【解决方案2】:

通过将url 设置值更正为'/new/webresources/generic/1' 重试,如下所示:

$.ajax({
  url: '/new/webresources/generic/1', 
  success: function() { alert('PUT completed'); }
});

根据您更新的Web服务实现Java代码,您应该参考How correctly produce JSON by RESTful web service的答案找到正确的Java代码。

【讨论】:

  • 在 chrome 或 firefox 的开发工具的网络选项卡下是否看到任何网络流量?
  • 网络流量???不,我没有这样做兄弟..实际上,这个在这个问题中有什么用..
  • 如果您确实要执行操作 GET,可以忽略 typedata 等设置。
  • 您可以将javascript代码粘贴到chrome开发工具的Console选项卡中,它应该可以工作。
  • 错误代码 200, SyntaxError: JSON.parse: expected property name or '}' 你知道吗兄弟
猜你喜欢
  • 2013-08-26
  • 1970-01-01
  • 2016-03-30
  • 2020-03-23
  • 1970-01-01
  • 1970-01-01
  • 2013-04-03
  • 2013-06-03
  • 1970-01-01
相关资源
最近更新 更多