Jquery跨域进行Ajax操作
16lz
2021-01-22
后台:
//jquery只能通过get方式传递数据
//根据html指定的jsonp回调函数的参数名,获取回调函数的名称
//callbackName的值其实就是:jsonpCallback
String callbackName = (String)request.getParameter("jsoncallback");
//简单模拟一个json字符串,实际可使用google的gson进行转换,次数通过字符串拼接
//{"name":"张三","age":28}
//\是对"号进行转义
String jsonStr = "{\"name\":\"张三\",\"age\":28}";
//最终返回的数据为:successjsonpCallback({"name":"张三","age":28})
System.out.println("CallBackFunctionName"+callbackName);
String renderStr = callbackName+"("+jsonStr+")";
response.setContentType("text/plain;charset=UTF-8");
response.getWriter().write(renderStr);
前台: $.ajax( { type : "get", //jquey是不支持post方式跨域的 async : false, url : "http://localhost:8080/Reg/servlet/RegisterUser", //跨域请求的URL dataType : "jsonp", //传递给请求处理程序,用以获得jsonp回调函数名的参数名(默认为:callback) jsonp : "jsoncallback", //自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名 jsonpCallback : "successjsonpCallback", //成功获取跨域服务器上的json数据后,会动态执行这个callback函数 success : function(json) { $("#name").html(json.name); $("#age").html(json.age); } });
前台: $.ajax( { type : "get", //jquey是不支持post方式跨域的 async : false, url : "http://localhost:8080/Reg/servlet/RegisterUser", //跨域请求的URL dataType : "jsonp", //传递给请求处理程序,用以获得jsonp回调函数名的参数名(默认为:callback) jsonp : "jsoncallback", //自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名 jsonpCallback : "successjsonpCallback", //成功获取跨域服务器上的json数据后,会动态执行这个callback函数 success : function(json) { $("#name").html(json.name); $("#age").html(json.age); } });
更多相关文章
- 加载函数加载页面但不能对数据执行任何操作
- 绑定和解除相同javascript函数的目的是什么?
- Jquery中的队列函数quene()、dequene()、clearQuene()
- Ajax_04之jQuery中封装的Ajax函数
- 怎么用js或jquery把一个函数b绑定到另一个函数a之后执行
- jQuery: 刨根问底 attr and prop两个函数的区别
- jQuery ajax问题 - 无法让我的函数工作
- 通过调用返回参数的本地函数来构建Ajax Data部分
- Jquery ajax回调函数不执行