JS实现AJAX请求_2(进阶篇)
问题:当多次调用同一个AJAX请求时,可能会遇到服务器的数据发生改变了,但是在浏览器中获取的数据没有同步的问题。问题的原因在于浏览器的缓存。这种情况一般只发生在GET请求中。
避免GET缓存:
使用无意义的参数避免缓存:
//这里只针对非IE的浏览器了,IE也是如此,只有对象的创建不同罢了 var xmlHttp=new XMLHttpRequest(); var timer=new Date().getTime();//获取当前的时间,每次请求时的时间是不同的 xmlHttp.open("GET","ajax.do?temp="+timer,true); xmlHttp.send();
在服务端添加响应头:
//在servlet中添加响应头 response.setContentType("text/html;charset=UTF-8"); response.addHeader("pragma","no-cache"); response.addHeader("cache-control","no-cache"); response.addHeader("expires","0"); //这三个响应头告诉浏览器不使用缓存
问题:当我们使用GET请求传参中有中文时,会出现乱码的情况,POST请求转码比较简单。
AJAX对中文的支持:
GET请求:
//js传中文 var xmlHttp=new XMLHttpRequest(); var v=encodeURIComponent("这是汉字");//将中文包裹起来 xmlHttp.open("GET","ajax.do?param="+v); xmlHttp.send();
//servlet中 String v=request.getParameter("param");//接收请求地址中的param的值 v=new String(v.getBytes("ISO-8859-1"),"UTF-8");//将原数据重新编码为UTF-8格式
POST请求:
//js var xmlHttp=new XMLHttpRequest(); xmlHttp.open("POST","ajax.do"); xmlHttp.send("v=这是汉字");//不用包裹起来
//servlet中 request.setCharacterEncoding("UTF-8");//这里设置请求的编码格式即可 String v=request.getParameter("v");//v=这是汉字
总结:
- 避免GET缓存
- 对中文的支持
- 字符转码
结语:
对所有的请求习惯性在servlet中都设置编码格式
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
GET请求中有中文时,将中文包裹起来,英文也可以包裹,没有什么影响。
相关推荐
此外,还可以使用jQuery、knockout.js等JavaScript库来处理Ajax请求,它们提供了更简洁的API,减少了代码量。 总之,这个压缩包为学习和实践Ajax技术提供了一个具体的场景——无刷新留言功能,通过C#和.NET框架实现...
在JavaScript开发中,有时我们需要对全局的Ajax请求进行拦截,以便进行统一的处理,比如添加统一的错误处理、数据格式化、性能监控等。这种需求通常可以通过“Ajax Hook”技术来实现。Ajax Hook允许我们捕获并修改...
用户发送的消息会被编码为JSON对象,然后通过Ajax请求发送到PHP服务器,服务器处理这些消息后再将新消息以JSON形式返回给客户端,更新聊天界面。 **AjaxChat_XML**同理,区别在于它使用XML作为数据交换格式。XML...
在 Native 端,我们需要实现一个 JavaScript Interface,例如 onAjaxRequest 方法,该方法将接收 Fly.js 传来的请求对象,并完成真正的请求后,将响应对象通过 handler 返回给 Fly.js。 通过这种方式,我们就可以...
在JSP中集成Ajax,我们通常会创建一个JavaScript函数来处理Ajax请求。这个函数可能包括以下步骤: 1. 创建XMLHttpRequest对象:这是Ajax通信的基础,不同的浏览器可能有不同的实现方式,但通常可以通过`new ...
标题:利用 HttpSession实现Ajax请求重定向 描述:如何在 Ajax 请求正常执行的情况下,实现网页重定向 标签:Ajax 重定向 HttpSession post 在本文中,我们将探讨如何使用 HttpSession 实现 Ajax 请求重定向。 ...
3. 如何在Struts的Action中处理Ajax请求,以及返回JSON或XML格式的数据。 4. 在JSP页面中使用JavaScript或jQuery进行Ajax调用,以及处理返回的结果。 5. 如何设计和组织MVC架构,使得Struts和Ajax能够有效地协同工作...
在JavaScript中,创建一个基本的Ajax请求包括以下步骤: 1. **创建XMLHttpRequest对象**:这是Ajax的核心,它负责与服务器建立连接并发送/接收数据。 ```javascript var xhr = new XMLHttpRequest(); ``` 2. **...
然而,需要注意的是,由于Ajax请求是异步的,开发者需要处理可能出现的并发问题,确保数据的一致性,并考虑到浏览器的兼容性问题。** **总结来说,"ajax_example.rar"中的示例展示了如何利用Ajax技术进行异步通信,...
2. **事件监听**:使用JavaScript(通常基于jQuery或其他库)添加事件监听器,当用户点击登录按钮时触发Ajax请求。 3. **构建Ajax请求**:使用XMLHttpRequest或现代浏览器提供的fetch API创建异步请求。设置请求的...
8. **错误处理与调试**:学习如何有效地处理JavaScript和Ajax请求中的错误,以及使用浏览器的开发者工具进行调试,是提升开发效率和代码质量的重要环节。 9. **jQuery与Ajax**:jQuery是一个流行的JavaScript库,...
JavaScript 和 AJAX 是 web 开发中的两个重要概念,广泛应用于创建交互性强、动态更新的网页。这份"Learn_JavaScript_and_Ajax_with_w3Schools.zip"压缩包包含了一个电子书和一个文本文件,旨在帮助学习者掌握这两种...
开发者可以从中学到如何配置Struts的Action、Interceptor以及如何编写JavaScript代码来发送Ajax请求,以及如何在后台处理这些请求并返回响应数据。此外,通过分析项目中的JSP页面,还可以了解如何在页面上动态渲染从...
4. **服务器通信**:服务器端可能采用PHP、Node.js或其他后端语言处理这些Ajax请求,完成消息的存储和检索,并返回结果给客户端。 5. **数据解析**:接收到服务器响应后,解析返回的数据,通常是JSON格式,然后将新...
2. **JavaScript文件**:可能名为script.js或类似,这是处理Ajax请求的主要脚本。在这个文件中,开发者将创建XMLHttpRequest实例,设置请求参数(如URL、HTTP方法、请求头等),并监听其状态变化。当请求完成时,会...
按钮点击事件中,使用JavaScript编写Ajax请求代码,如设置请求方法(GET或POST)、URL、数据(如果需要)以及回调函数。 2. **Ajax请求**:使用XMLHttpRequest对象,创建一个新的请求,设置请求的URL为Smarty模板...
标题中提到的"extjs ajax同步请求所需js"是指ExtJS框架中用于执行同步Ajax请求的相关JavaScript代码。在ExtJS中,Ajax请求通常通过`Ext.Ajax`对象来实现。与传统的异步请求不同,同步请求会阻塞浏览器,直到请求完成...
2. `postajax.jsp` 是接收Ajax请求的JSP页面,处理请求后返回数据。 3. `www.pudn.com.txt` 可能是下载链接或参考文档,可能与Ajax+JSP的实现有关。 学习Ajax+JSP的结合,不仅可以提升Web应用的性能,还能深入理解...
【Ajax 实现无刷新对数据库操作】是一种现代Web开发中的技术组合,主要用于创建更快速、更互动的用户体验。Ajax(Asynchronous JavaScript and XML)的核心在于,它允许网页在不重新加载整个页面的情况下与服务器...