ajax跨域
由于最近在一个小项目需要把页面和后台分开,部署到不同的服务器上。这样就出现跨域的问题。下面我们就看如何实现:
1.导入jquery.js,本人使用的是1.10.1版本
2.js代码
$(document).ready(function(){ //查看按钮绑定事件 $(".btn_check").bind("click", function() { var url = "http://192.168.0.109:8080/test/testServlet?callback=queryUserInfo"; $.ajax({ url:url, dataType:'jsonp', processData: false, type:'get', jsonpCallback:"queryUserInfo", success:function(data){ alert(data.name); }, error:function(XMLHttpRequest, textStatus, errorThrown) { console.log("XMLHttpRequest.status:"+XMLHttpRequest.status); console.log("XMLHttpRequest.readyState:"+XMLHttpRequest.readyState); console.log("textStatus:"+textStatus); } }) }); });
注意:jsonpCallback的值必须与callback的值保持一致
3.java代码
String callback = request.getParameter("callback"); UserService service = new UserService(); String respInfo = service.queryUserByLanId(lanId); try { response.getWriter().write(callback+"("+JSONObject.fromObject(respInfo)+")"); } catch (IOException e) { e.printStackTrace(); }
注意:返回的是jsonp格式不是json格式,所以我把返回数据拼接成jsonp格式
json格式:
{ "uid:"123", "state:"0" }
jsonp格式
callback({ "uid:"123", "state:"0" })
jsonp格式比json格式外面多一层callback().
相关推荐
kentrl 2020-11-10
结束数据方法的参数,该如何定义?-- 集合为自定义实体类中的结合属性,有几个实体类,改变下标就行了。<input id="add" type="button" value="新增visitor&quo
ajaxyan 2020-11-09
zndy0 2020-11-03
学留痕 2020-09-20
Richardxx 2020-11-09
learningever 2020-09-19
chongxiaocheng 2020-08-16
ajaxhe 2020-08-16
lyqdanang 2020-08-16
curiousL 2020-08-03
TONIYH 2020-07-22
时光如瑾雨微凉 2020-07-19
83510998 2020-07-18
坚持着执着 2020-07-16
jiaguoquan00 2020-07-07
李永毅 2020-07-05
坚持着执着 2020-07-05