所以我有一个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,那就是例外输出。
这是一种不应该起作用的方式吗?
答案 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代码。