因为官网有一个合作加盟的功能,需要一个表单录入,但是官网除了这个功能,都是静态页面,所以就准备写一个ajax跨域,保存到之前公司项目的后台管理系统去,第一次用ajax跨域,网上很多参考。这也是我的第一篇博文,准备以后养成这个习惯,以备后期参考。。。。。
通过自己N久找代码的经验,自我觉得大多数人应该不喜欢理论太多的文章,所以闲话不多说了,直接上代码
首先前端构造ajax请求:
function ajaxTest(){
$.ajax({
type:"get",
async:false,
url:"http://www.xxxx.com/test.do",
dataType:"jsonp",
//传递给请求处理程序,用以获得jsonp回调函数名的参数名(默认为:callback)
jsonp:"jsoncallback",
//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
jsonpCallback:"jsonpCallback_success",
//成功获取跨域服务器上的json数据后,会动态执行这个callback函数
success:function(data){
alert(data.name);
},
error : function() {
alert("fail");
}
});
}
上面代码就是前端的ajax代码了,当然,怎么调用我就不多说,,,,
接下来看Java代码
public void test(HttpServletRequest request,HttpServletResponse response){
try {
//根据html指定的jsonp回调函数的参数名,获取回调函数的名称
String callbackName=(String)request.getParameter("jsoncallback");
//callbackName的值其实就是:jsonpCallback_success
System.out.println("---------"+callbackName);
String result="{\"name\":\"张三\",\"age\":28}";
//最终返回的数据为
String renderStr=callbackName+"("+result+")";
response.setContentType("text/plain;charset=UTF-8");
response.getWriter().write(renderStr);
} catch (IOException e) {
e.printStackTrace();
}
}
好了,简单的ajax跨域就实现了,亲测有用的。本人也是初次尝试,知道肯定这也只是基础的,还望大神勿喷!