Отправка данных 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) + ")";
}