使用jsp文件中的javascript读取json

时间:2013-11-20 20:46:24

标签: java javascript json jsp

所以我有一个JSP文件,我只是输出json代码,我试图在我的javascript脚本中使用json(在另一个页面中),但它似乎不起作用,控制台说那个返回的值未定义。如果我提供一些“真正的”API URL,它可以工作。

这是我的json_company.jsp

<%@page import="algo.user36.Service"%>
<%@ page contentType="application/json" pageEncoding="ISO-8859-1"%>
<%
    Service service = new Service();
    out.print(service.generatedJsonCompany());  
%>

这是我的javascript函数

function getData() {

$.getJSON( "json_company.jsp", function( data ) {

        console.log(data);

    });

}

如果我直接转到json_company.jsp,那就是例外输出。

这是一种不应该起作用的方式吗?

1 个答案:

答案 0 :(得分:0)

根据您提供的代码。

callback([ {"product_description":"Blueberries 1kg","QTE":"54797.0","REVENUS":"357873.6"}, {"product_description":"Mixed Fruits 500g","QTE":"153549.0","REVENUS":"690961.5"}, {"product_description":"Nuts 500g","QTE":"184481.0","REVENUS":"872008.44"}, {"product_description":"Original 1kg","QTE":"51175.0","REVENUS":"300284.4"}, {"product_description":"Raisins 1kg","QTE":"145205.0","REVENUS":"670625.85"}, {"product_description":"Strawberries 500g","QTE":"68685.0","REVENUS":"363077.0"}]);

您返回回调函数,而不是jsonp请求的典型json本身。尝试在调用之前在javascript中预定义回调函数。

function callback(data){
    console.log(data);
}

试一试:

$.ajax({
   type: 'GET',
    url: "json_company.jsp",
    async: false,
    jsonpCallback: 'callback',
    contentType: "application/json",
    dataType: 'jsonp',
    success: function(json) {
       console.dir(json);
    },
    error: function(e) {
       console.log(e.message);
    }
});

请务必在firebug \ chrome console中检查您的请求以排除404代码。