У меня проблема. У меня есть отправка формы, которая использует jQuery JSONP для обратного вызова моего сервлета. Этот код встроен в другой домен, отсюда и его использование.
Вот моя форма отправки AJAX:
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js' type='text/javascript'></script>
<script language='Javascript' type='text/javascript'>
$(\"#form1\").submit(function(event) {
event.preventDefault();
var $form = $(this),
choice2 = $form.find( 'input[name=\"personChoice\"]' ).val(),
url = $form.attr( 'action' ),
$.ajax({
data: {choice:choice2},
url: url,
dataType: 'jsonp',
jsonp: 'callback',
jsonpCallback: 'updatePage'
});
});
function updatePage(renderHTML) {
alert(renderHTML);
}
</script>
Я могу подтвердить в своем сервлете Java, что request.getParameter("callback") заполняется updatePage. Что мне нужно сделать, так это отправить ответ в формате JSONP в сервлет Java. Как это сделать? На данный момент у меня есть что-то очень простое:
Код сервлета Java:
response.setContentType("text/javascript");
PrintWriter out = response.getWriter();
String renderHTML = "{ renderHTML = 'Successful'}";
out.println(renderHTML);
Я также попробовал ответ типа контента JSON, предупреждение в моем javascript updatePage не вызывается.
В чем хитрость с сервлетом Java и ответом на jsonpCallback???