最近的开发中,应工作需要,把java代码在了jsp上,而且还需要通过ajax跨域请求这个方法,并且返回数据。遇到了跨域请求 以及contentType错误,我把我的代码贴出,供大家参考。
html页面使用jsonp方式跨域请求(注意:请求的网址?callback=?必须得加上,不懂得请自行搜索jsonp介绍)
<title>获取liferay登录信息页面</title>
</head>
<body>
<form id= "uploadForm" >
<input type="button" onclick="upload_file()" value="获取用户名和邮箱" style"width=100px;high=50px;margin:20px;">
</form>
</body>
<script src="lib/jquery/1.9.1/jquery.js"></script>
<script type="text/javascript">
function upload_file() {
$.getJSON("http://localhost:8080/ajaxSession.jsp?callback=?",function(data){
alert("name:"+data.name + "\n email:" + data.email);
});
}
</script>
</html>
jsp代码,注意 contentType=”application/x-javascript; charset=UTF-8”。。
//省略jar包
<%@ page language="java" contentType="application/x-javascript; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String callback = request.getParameter("callback");
PrintWriter pw = response.getWriter();
json = "{\"name\":\"zhang\",\"email\":\"123@com\"}";
pw.print(callback + "(" + json + ")");
pw.flush();
pw.close();
%>
仅供参考。