我有问题。我有一个表单提交,它使用 jQuery JSONP 对我的 servlet 进行调用。此代码嵌入在另一个域中,因此使用。
这是我的表单提交 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 servlet 中确认 request.getParameter("callback") 填充了 updatePage。我需要做的是在 Java Servlet 中以 JSONP 格式发回响应。如何做到这一点?我现在有一些非常简单的事情:
Java Servlet 代码:
response.setContentType("text/javascript");
PrintWriter out = response.getWriter();
String renderHTML = "{ renderHTML = 'Successful'}";
out.println(renderHTML);
我还尝试了 JSON 内容类型响应,我的 javascript updatePage 中的警报没有被调用。
Java servlet 和响应 jsonpCallback 的技巧是什么???