通过jQuery实现AJAX
2024-09-09 16:22:43
通过jQuery实现AJAX
> 使用get和getJSON都会有缓存问题,并且使用get方法不能传送较多的数据。
问题:
在IE浏览器中,get请求使用ajax存在缓存问题,会使用上一次请求的结果处理请求,而不向服务器发送请求
解决办法:
在请求尾部带一个随机参数,如:var url="/MyProject/user?t="+Math.random();
post请求:通过send()方法传递参数,需要设置请求头,没有浏览器缓存问题
> post方法不会有缓存的问题,所以我们开发时使用post方法较多。
1、 post()方法
$.post(url, [data], [callback], [type])
参数:
url:发送AJAX的请求地址,字符串
data:发送给服务器的请求参数,JSON格式。
callback:当前需要获取服务器发送的响应时,我们可以通过该回调函数
jQuery会将响应信息以回调函数的参数的形式返回
type:响应信息的类型,字符串。一般两个常用值text、json
2、 get()方法
- get方法和post方法使用方式基本一致。
3、 getJSON()方法
getJSON(url, [data], [callback])
getJSON方法和get方法类似,只不过该方法默认的响应类型为JSON,不需要再手动指定。
代码演示:
$("input[name=username]").blur(function(){
var url="${pageContext.request.contextPath}/user?method=isExists";
var username=$("input[name=username]").val();
var param={"username":username};
function callback(data){
if(data==1){
$(".errorMsg").text("用户名已存在");
$("#sub_btn").attr("disabled",true);
}else{
$(".errorMsg").text("用户名可以使用");
$("#sub_btn").attr("disabled",false);
}
}
$.post(url,param,callback,"text");
});
Servlet中的验证方法:
public void isExists(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
String username=request.getParameter("username");
boolean isExists=userService.isExists(username);
if(isExists){ //用户已存在
response.getWriter().println("1");
}else {
response.getWriter().println("0");
}
}
最新文章
- cross_domain
- Leetcode 4Sum
- Android:Layout_weight的深刻理解
- 通过配置文件启动odoo-10.0
- VR外包团队:VR和AR技术已经红得发紫
- STL(multiset) UVA 11020 Efficient Solutions
- XAML特殊字符
- win7 debian 双系统修改引导项顺序
- 给定金额m和红包数量n
- Teamcity+SVN+VisualStudio在持续集成简明教程
- php 函数strtr 替换函数实例解析 strtr 速度比较快
- android绑定Service失败原因
- 禁止 一些地区的ip用户访问 网站
- Using F2 to Rename Open Files
- Qt ActiveX web dome 详细例子
- 必须知道的Java八大排序算法
- Java final类&;所有构造方法均为private的类(类型说明符&;访问控制符)
- ThreadPoolExecutor 线程池的源码解析
- BZOJ.5290.[AHOI/HNOI2018]道路(树形DP)
- 【leetcode】 Add Two Numbers