最近的开发中,应工作需要,把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(); %>仅供参考。