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
learningever 2020-09-19
chongxiaocheng 2020-08-16
ajaxhe 2020-08-16
lyqdanang 2020-08-16
curiousL 2020-08-03
时光如瑾雨微凉 2020-07-19
坚持着执着 2020-07-16
jiaguoquan00 2020-07-07
李永毅 2020-07-05
坚持着执着 2020-07-05