0

我想要实现的是使用 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"
  }
   ]
}

内容的 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 cannot load http://localhost:8004/project5/terms.json. Origin null is not allowed by Access-Control-Allow-Origin. 错误

4

2 回答 2

1

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

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

例如,使用“真正的”Web 服务器来传递您的 HTML 页面,而不仅仅是从本地驱动器打开 HTML 页面。

于 2012-11-12T08:22:04.793 回答
0

你应该简单地把 console.log("step1")

或 2 或 3,到代码的各个部分,看看它在哪里停止记录。那就是你的问题所在。

您还可以记录任何其他可能为您提供线索的内容。

于 2012-11-12T07:37:29.677 回答