我想要实现的是使用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.
现在错误
答案 0 :(得分:1)
阅读上一次编辑,您似乎遇到了跨站点脚本问题。您正在向与您的HTML网页所在的域不同的网站发出ajax请求。
也许您只在开发中遇到此问题,而在生产环境中,HTML页面将来自与ajax请求相同的站点。然后,您应该考虑使您的开发环境与实际部署类似。
例如,使用“真正的”Web服务器来传递HTML页面,而不仅仅是从本地驱动器打开HTML页面。
答案 1 :(得分:0)
你应该简单地说 的console.log( “步骤1”)
或2或3,代码的各个部分,并查看它停止记录的位置。 那就是你的问题所在。
您还可以记录任何可能为您提供线索的其他内容。