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