Отправка данных JSONP и JSON?
Я делаю веб-службу, которая должна возвращать данные в формате JSONP. Я использую JSON taglib для JSP, и я думал, что все, что нужно было добавить, было скобкой, но я не могу найти хороший ресурс, который проверяет это.
Например, когда-либо функция веб-службы возвращает эту функцию:
private static String getJSONPObject(String s) throws JSONException {
return "(" + new JSONObject(s) + ")";
}
Правильно ли это?
Спасибо!
Ответы
Ответ 1
JSONP - это просто хак, позволяющий веб-приложениям получать данные по доменам. Можно сказать, что он нарушает Same Origin Policy (SOP). Как это работает, с помощью Javascript вставить элемент "script" на вашу страницу. Поэтому вам нужна функция обратного вызова. Если у вас его нет, ваш Javascript не сможет получить доступ к объекту JSON. Но, используя JSONP, ваш код Javascript может вызвать функцию обратного вызова.
Итак, вы должны указать имя обратного вызова. Таким образом, ваша функция может выглядеть так:
private static String getJSONPObject(String callback, String s) throws JSONException {
return callback + "(" + new JSONObject(s) + ")";
}
Ответ 2
Я добавил один пример, чтобы обратиться к Cross Domain JSONP (Json с дополнением) с помощью JQuery и Servlet или веб-службы JAX-WS.
Пожалуйста, проверьте эту статью.
http://reddymails.blogspot.com/2012/05/solving-cross-domain-problem-using.html