java - 从 REST 服务器解析 JSON

标签 java javascript json rest jersey

我想要实现的是使用 Google 的图形 API 绘制表格,当页面加载时,它会查询我的 REST 服务器以获取 JSON 数据。这是我的 JavaScript 函数。

JavaScript 控制台没有显示任何错误。

 $(document).ready(function() { 
        $.ajax({
                      url: 'http://localhost:8004/project5',
                      dataType: "json",
                      async:false,
                      error: function(error){
                             console.debug(error);
                         },
                      success:  function(data)
                        {
                                alert("YESSSSS");   
                                var data = data.results;    
                                for(var i=0; i<data.length; i++) {

                                    mytable[arraysize] = new terms(data[i].term1, data[i].term2, (data[i].contains)/((data[i].contains)+ (data[i].notcontains)));
                                    arraysize +=1;

                                }

                                    drawTable();

                        }


                    });
    });

这是我在浏览器中使用“http://localhost:8004/project5”查询服务器时返回的 JSON

{
  "results":[
  {
     "term1":"test",
     "term2":"hard",
     "contains":"32",
     "notcontains":"55"
  },
  {
     "term1":"test",
     "term2":"easy",
     "contains":"32",
     "notcontains":"55"
  },
  {
     "term1":"pizza",
     "term2":"hut",
     "contains":"32",
     "notcontains":"55"
  }
   ]
}

content 的 html 内容未设置为“YESSSS”,我用它来测试该功能是否成功。当页面加载时,其余服务器识别出它被查询并成功返回 JSON,因此我认为问题在于从返回的 JSON 中获取数据。这就是我陷入困境的地方。

编辑:看来我的成功函数没有被调用。这是在 java REST 服务器 JAX-RS 中调用的函数。生成 JSON。

 @GET
  @Produces(MediaType.APPLICATION_JSON)
  public String getStudentByid(@QueryParam("id") String id) {

      System.out.println("Queried");
      if (id == null)
          return Terms.stringTerms(container);
      return Terms.getTermsByFirst(container, id);
 }

我得到了一个 XMLHttpRequest 无法加载 http://localhost:8004/project5/terms.json。 Access-Control-Allow-Origin 不允许 Origin null。 现在出错了

最佳答案

阅读您的上次编辑,您似乎遇到了跨站点脚本问题。您正在向一个站点发出 ajax 请求,该站点与您的 HTML 页面所在的域位于不同的域中。

也许您只在开发中遇到这个问题,而在生产中,HTML 页面将来自与 ajax 请求相同的站点。然后您应该考虑使您的开发环境类似于真实的部署。

例如,使用“真正的”网络服务器来交付 HTML 页面,而不仅仅是从本地驱动器打开 HTML 页面。

关于java - 从 REST 服务器解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13339413/

相关文章:

java - 读取上传的文本文件并插入数据库

java - WAS 7 REST 客户端中的 Jersey 2

php - PHP网站内数据从MySQL到JSON到AJAX,如何实现?

java - 使用 pojo 数组将 Json 数组转换为 Pojo 时出现问题

c# - 用户定义的结构和默认(反)序列化

java - Spring MVC 可以捕获异常并在所有 Controller 的响应中返回 BindingResult 吗?

java - 如何从 Glassfish 连接到外部 MySQL 服务器

javascript - 滚动到 jcarousel 的第一项

javascript - React onDragStart 在 Material UI 自动完成组件中不会触发

javascript - Prettier 在保存 JavaScript 文件时删除单引号