Для начала проверьте свой URL в своем javascript, чтобы он содержал параметр "jsoncallback =?".
$.getJSON('http://mysite.com/my.jsp?jsoncallback=?',
{operator : 'XYZ'},function(b) {
//mycode
})
jQuery заменит последний вопросительный знак после параметра jsoncallback идентификатором.
Этот идентификатор будет затем использоваться на стороне сервера в вашем JSP для создания ответа, который будет начинаться с функции, названной из значения идентификатора.
Простой пример JSP:
<%@ page language="java" contentType="application/json" pageEncoding="UTF-8"%>
<%@ page import="java.io.*"%>
<%
PrintWriter writer = response.getWriter();
String callback = request.getParameter("jsoncallback");
if (callback != null && callback.length() > 1)
{
writer.write(callback + "({ \"mykey\" : \"myvalue\" });");
}
%>
Это может привести к ответу, который будет выглядеть примерно так:
jQuery16205149872086476535_1314088378455({ "mykey" : "myvalue" });
Итак, в коротком ответе, если ваш ответ json НЕ обернут в это имя функции, функция обратного вызова не сработает,вместо этого вы получите сообщение об ошибке, которое вы могли бы увидеть следующим образом:
$.getJSON(URL,{operator : 'XYZ'},function(b) {
//mycode
}).error(function(jqXHR, textStatus, errorThrown) {
alert("Error: " + textStatus + " errorThrown: " + errorThrown);
})
Надеюсь, это поможет
Patrik