2013-11-20 76 views
0

所以我有一個JSP文件,我只是簡單地輸出json代碼,並且我試圖在我的javascript腳本中(在另一個頁面中)使用那個json,但似乎沒有工作,控制檯說,返回的值是未定義的。如果我提供一些「真實」的API網址,它可以工作。從jsp文件讀取json與javascript

這是我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

你能提供生成的JSON嗎? – mdolbin

+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」:「堅果500g」,「QTE」:「184481.0」,「REVENUS」:「872008.44」},{「product_description」:「原裝1kg」,「QTE」: 「51175.0」,「REVENUS」:「300284.4」},{「product_description」:「葡萄乾1kg」,「QTE」:「145205.0」,「REVENUS」:「670625.85」},{「product_description」:「Strawberries 500g」, 「QTE」: 「68685.0」, 「REVENUS」: 「363077.0」}]); – wsalame

+0

檢查更新回答 – mdolbin

回答

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); 
    } 
}); 

而且一定要檢查的螢火\鉻控制檯您的要求來排除404碼。

+0

同樣的結果。我剛剛添加了你提供的功能 – wsalame

+0

@yoloswag它說完全沒有定義? – mdolbin

+0

@lancemanfv @yoloswag說'json_company.jsp'不會返回'callback(...)'函數中包裝的JSON。相反,讓'json_company.jsp'只返回JSON字符串。通過JSONLint運行它,以確保它是有效的。 – daniel0mullins